# Programming Languages



## Takadox

So what is your favorite programming language?
Which do you use the most?
Which do you like least?
among anything else...

Discuss the paradigms and reasons for picking each choice, the why.

I am not too sure as to what my favorite is right now, but I have been using C# a lot recently and have come to like it quite a bit. It has a lot of features built in that take care of a lot of things that were problematic in other languages. It supports pointers, but does not need them. It feels very professionally written. It also is still pretty efficient.

I like C++ because it was my first language. It is efficient and powerful, but not as unforgiving as other older languages.

I use java mostly because of school and such. Its best feature is its cross-platform usability and massive standard library.

Well I might add more later, but now its your turn


----------



## b90

Out of C, C++, C#, Java, Python, PHP and Ruby I've had the most fun with Python so far, but it's also the one I've worked the least with, so I can't really tell yet.


----------



## jdstankosky

I work the most with PHP and Javascript. Touched Java a tiny bit here and there. I want to learn Python really bad. I would love to try Ruby. There's something about the letter C that i find repulsive (no idea, it's just an ugly letter to me, I'm so petty) that prevents me from wanting to learn C, C++, C#, etc., despite the fact that PHP is quite similar to C and would make for an easy transition (as far as I know). I guess you could say I'm morbidly curious in C#.

I dunno.


----------



## LostTheMarbles

I work with mainly C, C++ .net, UML and a bit of python.

I like using C, it's not easy and you can easily create bugs but I like the precision involved in it.

Python's by far the most fun, it's just easy to use and it does most of the boring stuff for you.


----------



## Erbse

Java, JSP's and JavaScript/jQuery lately.

Not too bad once it gets on track, but I'm not too fond of scripting languages and my code inevitably turns into a giant mess. At least a working mess.

Can't stand PHP - although now that my JS is 'somewhat up on par' I'd perhaps be better at grasping it. Coming from backend languages initially (C / C++ / Java) having variables pop up out of nowhere with no datatypes has been nothing short of completely frustrating at the beginning.

Never tried other scripting languages and haven't gotten the chance to truly get into C# yet. I consider my spare time too valuable to waste it with coding these days. 

Additionally I've gotten used to the forgiveness of JAVA/C# - While I respect C++ there's only so much pointerception I'm willing to get myself into. It's like a mental fallout after an hour in.


----------



## Playful Proxy

Java, Javascript, Python, Lua, tiny bit of C++. Currently trying to co-op Java and Python. I'm enjoying Python more just because I like the choice to use OOP, but something tells me that if I need more power to utilize something like OpenGL, I"d have to rely on Java.


----------



## aestrivex

Signify said:


> Java, Javascript, Python, Lua, tiny bit of C++. Currently trying to co-op Java and Python. I'm enjoying Python more just because I like the choice to use OOP, but something tells me that if I need more power to utilize something like OpenGL, I"d have to rely on Java.


it depends on what you are doing but python or C++ will serve you much better than java for interacting with opengl (just as a matter of preference, of course you can do it in java if you are so inclined but java is so clunky).



currently the language that I am writing in is python. for earlier projects it has been any of java, C, scheme (and plenty of other languages I have interacted with in only a minor way). there are many things to like about python, but also some eccentricities to dislike. the others are clunkier, but have their beauty in their own ways -- C in particular, it is nice to be able to so precisely control how your code works. and functional languages have obvious elegance. I cannot pick a favorite -- they are different tools for different tasks. I can pick a least favorite -- java.


----------



## Epherion

My experience is with C/C++/C#, Java, Ada, Haskell, Python, Lua.

For me C# first because of its simplicity, the Ada because of its esoteric syntax/semantics and Lua is a second place slot. Its a funny little language with great power and portability.


----------



## Playful Proxy

aestrivex said:


> it depends on what you are doing but python or C++ will serve you much better than java for interacting with opengl (just as a matter of preference, of course you can do it in java if you are so inclined but java is so clunky).
> 
> 
> 
> currently the language that I am writing in is python. for earlier projects it has been any of java, C, scheme (and plenty of other languages I have interacted with in only a minor way). there are many things to like about python, but also some eccentricities to dislike. the others are clunkier, but have their beauty in their own ways -- C in particular, it is nice to be able to so precisely control how your code works. and functional languages have obvious elegance. I cannot pick a favorite -- they are different tools for different tasks. I can pick a least favorite -- java.


I'm aware of Java's clunkiness, but I also have an active interest in mod development/plugin development for Minecraft just to help myself learn. As for OpenGL support, I did not even know Python had that.  I have only been playing with Python more recently, and while I prefer it syntactically to Java (I do wish it didn't use tabs as a method for finding when methods, functions, classes, and loops end, etc), I also recognize the importance of cross-platform capability. It is for that last goal that I have come to put more attention toward the two cross-platform languages: Python and Java.


----------



## FlightsOfFancy

1) C/C++, I enjoy the intermediary of machine code and high level
2) Java, I enjoy getting stuff done rather quickly without having to worry about underlying compatibility and reinventing the wheel. 
3) Assembly, somewhat maschochistic and mainly for fun as I've never delved into systems programming/embedded systems much. I enjoy having to think through every step


----------



## aestrivex

Signify said:


> I do wish it didn't use tabs as a method for finding when methods, functions, classes, and loops end, etc


as far as i am concerned this feature of python is a bug. i recommend submitting bug reports.


----------



## Archetype

3rd year computer science, pretty adequate in C, C++, C#, Java, and PHP. Currently interested in Python and Ruby. I'm very interested in network security and Linux. Any advice for student who is still in college about what language to learn?


----------



## jdstankosky

Archetype said:


> 3rd year computer science, pretty adequate in C, C++, C#, Java, and PHP. Currently interested in Python and Ruby. I'm very interested in network security and Linux. Any advice for student who is still in college about what language to learn?


Python.


----------



## Archetype

jdstankosky said:


> Python.


care to explain?


----------



## lakshwadeep

I had started learning programming one summer with Python, which I liked, but I stopped after school started. Now that my focus is in bioinformatics, I've picked up Perl. I think I will try to relearn Python, but Perl is more widely established in the field.


----------



## jdstankosky

Archetype said:


> care to explain?


I dunno, seems it's like everything anyone talks about anymore. It's what the majority of my Linux apps are written in. I just figured it's the shiznit since nearly everyone seems to use it.


----------



## jdstankosky

lakshwadeep said:


> I had started learning programming one summer with Python, which I liked, but I stopped after school started. Now that my focus is in bioinformatics, I've picked up Perl. I think I will try to relearn Python, but Perl is more widely established in the field.


Lol Perl. I haven't seen Perl used anywhere other than old web apps, home-brew projects, or code golfing games. More widely established? Older maybe, hardly as used.


----------



## lakshwadeep

jdstankosky said:


> Lol Perl. I haven't seen Perl used anywhere other than old web apps, home-brew projects, or code golfing games. More widely established? Older maybe, hardly as used.


It would have helped if you read anything about bioinformatics before giving such an ignorant response. Many of the people in the field, like me, are scientists with little formal coding experience who take up the languages other scientists have used. Perl has a long history in the field, especially during the Human Genome Project (back when Perl was more popular than Ruby or Python) and through extensive modules like BioPerl. 

You may laugh at Perl as its general use has waned, but just because a language is not what "everyone talks about anymore" doesn't mean it can't get the job done. Look at Ruby. There has been a lot of recent news of people complaining about it being slow, even though it was and is wildly popular, even causing companies like Twitter to switch from Rails to Java. Does that mean everyone should drop Ruby as well? IMO, no. It's just herd mentality.


----------



## Archetype

Perl is still one of the widely used language, but the trend is dropping.
Look at 2004, java drops drastically while python rise, that's very interesting.


----------



## jdstankosky

lakshwadeep said:


> It would have helped if you read anything about bioinformatics before giving such an ignorant response. Many of the people in the field, like me, are scientists with little formal coding experience who take up the languages other scientists have used. Perl has a long history in the field, especially during the Human Genome Project (back when Perl was more popular than Ruby or Python) and through extensive modules like BioPerl.
> 
> You may laugh at Perl as its general use has waned, but just because a language is not what "everyone talks about anymore" doesn't mean it can't get the job done. Look at Ruby. There has been a lot of recent news of people complaining about it being slow, even though it was and is wildly popular, even causing companies like Twitter to switch from Rails to Java. Does that mean everyone should drop Ruby as well? IMO, no. It's just herd mentality.


WTF is your problem with me, dude? "Ignorant response?" Coming from the guy who just picked up Perl because he had no formal coding experience and it's what people around him were using, classic. If we were to look at the software technology used in bioinformatics, then yes, perhaps Perl is more widely used, but It's losing ground rapidly. Also, in the grand scheme of things, bioinformatics is all but a sliver of the pie I am looking at. When you said "in the field," I assumed you meant the field of programming, which is the main topic at hand.

From Wikipedia's Bioinformatics page:


> Bioinformatics uses many areas of computer science, mathematics and engineering to process biological data. Complex machines are used to read in biological data at a much faster rate than before. Databases and information systems are used to store and organize biological data. Analyzing biological data may involve algorithms in artificial intelligence, soft computing, data mining, image processing, and simulation. The algorithms in turn depend on theoretical foundations such as discrete mathematics, control theory, system theory, information theory, and statistics. Commonly used software tools and technologies in the field include *Java, C#, XML, Perl, C, C++, Python, R, SQL, CUDA, MATLAB, and spreadsheet applications*.


OK, bioinformaticians use Perl. My gosh, man, chill out, get laid, do whatever it is you need to do, but stop being an ass.

I suggested that @Archetype learn Python because it is obviously clear that it is steadily becoming the _de facto_ language in ALL areas of programming, including YOURS.


----------



## jdstankosky

Archetype said:


> Perl is still one of the widely used language, but the trend is dropping.
> Look at 2004, java drops drastically while python rise, that's very interesting.


That's not the data that the TIOBE index represents. The TIOBE index is a measurement of the popularity of internet search terms. Do not rely on that metric for any accurate assessment of the implementation of programming languages, the amount of code written in those languages, or the preference for these languages currently in use.

Try this instead:

https://sites.google.com/site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language










Caveat, it's based on trends as well, but is a much more realistic representation of the data.


----------



## Takadox

jdstankosky said:


> Lol Perl. I haven't seen Perl used anywhere other than old web apps, home-brew projects, or code golfing games. More widely established? Older maybe, hardly as used.


Well maybe next he will learn lisp and COBOL and fortran


----------



## lakshwadeep

jdstankosky said:


> WTF is your problem with me, dude? "Ignorant response?" Coming from the guy who just picked up Perl because he had no formal coding experience and it's what people around him were using, classic. If we were to look at the software technology used in bioinformatics, then yes, perhaps Perl is more widely used, but It's losing ground rapidly. Also, in the grand scheme of things, bioinformatics is all but a sliver of the pie I am looking at. When you said "in the field," I assumed you meant the field of programming, which is the main topic at hand.
> 
> From Wikipedia's Bioinformatics page:
> 
> OK, bioinformaticians use Perl. My gosh, man, chill out, get laid, do whatever it is you need to do, but stop being an ass.


Maybe I should have chosen a less inflammatory word than ignorance, but since your posts are often overemotional and full of personal attacks whenever anyone dares to disagree with you, I didn't think you would mind a taste of your own medicine.

Your assumption of which field was wrong. I mentioned Perl in the same sentence as bioinformatics, and so it should have been obvious when I said I was going to relearn Python, it was also in the context of bioinformatics (thus why I mentioned Perl in that same sentence, as well). Whatever the assumption, you still were ridiculing a language just because it's fallen out of popularity. That shows immaturity and conflicts with your implied claims about being a more experienced programmer.



> I suggested that @_Archetype_ learn Python because it is obviously clear that it is steadily becoming the _de facto_ language in ALL areas of programming, including YOURS.


Who is arguing with you about learning Python? No one. So save the italics and all caps.


----------



## countrygirl90

I'm not much fond of programming languages but as a part of my course ,I studied basics during my school days and college .And I too like C and C++ but that's because they are easy to understand and work on .:wink:


----------



## Epherion

Takadox said:


> Well maybe next he will learn lisp and COBOL and fortran


Those are still used, greatly i might add, and programmers are getting hard to find.


----------



## Takadox

Epherion said:


> Those are still used, greatly i might add, and programmers are getting hard to find.


It was both a joke and serious. 
If I wanted a joke about old programming I might say machine language or to some extent assembly, but thats still very useful. But unfortunately anything that we would recognize today is still somewhat useful.


----------



## azdahak

lakshwadeep said:


> It would have helped if you read anything about bioinformatics before giving such an ignorant response. Many of the people in the field, like me, are scientists with little formal coding experience who take up the languages other scientists have used. Perl has a long history in the field, especially during the Human Genome Project (back when Perl was more popular than Ruby or Python) and through extensive modules like BioPerl.
> 
> You may laugh at Perl as its general use has waned, but just because a language is not what "everyone talks about anymore" doesn't mean it can't get the job done. Look at Ruby. There has been a lot of recent news of people complaining about it being slow, even though it was and is wildly popular, even causing companies like Twitter to switch from Rails to Java. Does that mean everyone should drop Ruby as well? IMO, no. It's just herd mentality.



Python is really starting to get a lot of traction in bioinformatics. I know several people who migrated their work over the Python from other options.


----------



## azdahak

Takadox said:


> Well maybe next he will learn lisp and COBOL and fortran



Believe it or not, fortran is still used extensively in the sciences. It's ultrafast.

I believe I was reading a while back that COBOL programmers were in big demand for a few niche categories where people needed to update legacy code…like at nuclear power plants if I recall properly.

….which is a bit scary.


----------



## aestrivex

lakshwadeep said:


> You may laugh at Perl as its general use has waned, but just because a language is not what "everyone talks about anymore" doesn't mean it can't get the job done. Look at Ruby. There has been a lot of recent news of people complaining about it being slow, even though it was and is wildly popular, even causing companies like Twitter to switch from Rails to Java. Does that mean everyone should drop Ruby as well? IMO, no. It's just herd mentality.


Ruby != Rails. Ruby is a nice language, although i've played around with it only minimally.


----------



## Takadox

azdahak said:


> Believe it or not, fortran is still used extensively in the sciences. It's ultrafast.


No I know, I still know guys who use it as well. It is fast, quite. Very close to machine level implementation is always good.
Its also still being updated unlike some other older languages that just haven't been fully phased out yet.
Though I still like matlab quite a bit, not as fast but in does have some more uses.


----------



## Takadox

Also implement a stack called icona and then "Pop" its members.


----------



## azdahak

Takadox said:


> No I know, I still know guys who use it as well. It is fast, quite. Very close to machine level implementation is always good.
> Its also still being updated unlike some other older languages that just haven't been fully phased out yet.
> Though I still like matlab quite a bit, not as fast but in does have some more uses.



I primarily use Mathematica or Matlab. It's fast enough for what I need for the most part, and faster to program.

Mathematica has nice parallelization features and nice graphics. If you need a bit more speed, you can compile your functions, or even call a C program quite easily. 

If something needs to run for 8 hours, I just let it run overnight.


----------



## Takadox

azdahak said:


> I primarily use Mathematica or Matlab. It's fast enough for what I need for the most part, and faster to program.
> 
> Mathematica has nice parallelization features and nice graphics. If you need a bit more speed, you can compile your functions, or even call a C program quite easily.
> 
> If something needs to run for 8 hours, I just let it run overnight.


Wow! Eight hours, now that is a long time for something to run. You must be running some intense systems. While not unheard of or uncommon in many fields, it is still kind of crazy when you think about the amount of calculations that are run in eight hours. Lets say that the system performs 100 trillion calculations a second(pretty good) now we multiply that by 3600 * 8 and we get a whopping 2,880,000,000,000,000,000 calculations or 2.88*10^18 or 2.88 Quintilian calculations wow


----------



## lakshwadeep

aestrivex said:


> Ruby != Rails. Ruby is a nice language, although i've played around with it only minimally.


Rails depends on Ruby, and it is not Rails by itself that is implicated in the slowness.


----------



## azdahak

Takadox said:


> Wow! Eight hours, now that is a long time for something to run. You must be running some intense systems. While not unheard of or uncommon in many fields, it is still kind of crazy when you think about the amount of calculations that are run in eight hours. Lets say that the system performs 100 trillion calculations a second(pretty good) now we multiply that by 3600 * 8 and we get a whopping 2,880,000,000,000,000,000 calculations or 2.88*10^18 or 2.88 Quintilian calculations wow



100 trillion calculations per second? Damn. What the hell kind of computer do you have? :shocked:

Most of the stuff I do..maybe I get on the order of 1 - 100 calculations per second….usually ultimately coming down to calculating on some monster matrix.

I know people who run stuff on servers for weeks…never mind hours.

As to your number above….

I mean for simple floating point ops per second...

I think most core i7s run around 100 gigaFlops… 320 trillion flops (320 teraFlops) would be on the order of the big distributed computing clusters, like [email protected]


----------



## Takadox

azdahak said:


> 100 trillion calculations per second? Damn. What the hell kind of computer do you have? :shocked:
> 
> Most of the stuff I do..maybe I get on the order of 1 - 100 calculations per second….usually ultimately coming down to calculating on some monster matrix.
> 
> I know people who run stuff on servers for weeks…never mind hours.
> 
> As to your number above….
> 
> I mean for simple floating point ops per second...
> 
> I think most core i7s run around 100 gigaFlops… 320 trillion flops (320 teraFlops) would be on the order of the big distributed computing clusters, like [email protected]


oops, I thought you might be using server side processing.
Yeah otherwise take off the like 5 0s.
Matrices is what I thought, they are so annoying ><.


----------



## wellnowwhat

I love JavaScript and Ruby. JavaScript for its strong functional abilities, Ruby because it's just so damn simple and fun. Plain old C is up there, as well.

I use JavaScript and VBA (ugh) the most, currently. The company where I currently work is transitioning from VB6 to C#.NET so I also see a lot of C# in my future. 

I really like the functional paradigm. It's just how my brain, well, functions.


----------



## azdahak

wellnowwhat said:


> I really like the functional paradigm. It's just how my brain, well, functions.




May 25, 2013. Success at last! The creature is showing the first signs of awakening to consciousness and continues to show an interest in his own inner workings and method of creation. After so many failures, I have finally done it. The secret was abandoning traditional object based programing for a functional approach. The creature is starting to ask questions regarding this. I have tried to misdirect his curiosity by allowing him access to Microsoft products thinking the utter convoluted maze of bugs and "features" would keep him distracted from learning sane methods of programming. Unfortunately he has expressed emotional (!!) turmoil over being subjected to these tools. He unfortunately noticed a copy of Dennis Ritchie's C book I stupidly left on the workbench. I will download C# and .Net tutorials from Microsoft in the hope I can keep him further distracted with enigmas. If this fails, I will have no choice but to re-initialize his positronic matrix and reprogram him as an Xbox One. Fanboys will buy anything. 


:wink:


----------



## wellnowwhat

azdahak said:


> May 25, 2013. Success at last! The creature is showing the first signs of awakening to consciousness and continues to show an interest in his own inner workings and method of creation. After so many failures, I have finally done it. The secret was abandoning traditional object based programing for a functional approach. The creature is starting to ask questions regarding this. I have tried to misdirect his curiosity by allowing him access to Microsoft products thinking the utter convoluted maze of bugs and "features" would keep him distracted from learning sane methods of programming. Unfortunately he has expressed emotional (!!) turmoil over being subjected to these tools. He unfortunately noticed a copy of Dennis Ritchie's C book I stupidly left on the workbench. I will download C# and .Net tutorials from Microsoft in the hope I can keep him further distracted with enigmas. If this fails, I will have no choice but to re-initialize his positronic matrix and reprogram him as an Xbox One. Fanboys will buy anything.
> 
> 
> :wink:


I sort of understood where you were going with that, but I'm not sure if I should be insulted or not. Haha.


----------



## azdahak

wellnowwhat said:


> I sort of understood where you were going with that, but I'm not sure if I should be insulted or not. Haha.



Welcome to PerC and the scourge that is the ENTP.


----------



## JYFly

Love Python, so easy to use!

I've used Java most often. It's, uh, okay.


----------



## MegaTuxRacer

Ruby, but I have only used it in a limited fashion.

Don't really care what anyone says, but Visual Basic is actually a rather nice language in its current form.

Java's my first language, but it's just okay. The lack implicit instantiation and passing primitive data types by reference is stupid.


----------



## wellnowwhat

MegaTuxRacer said:


> Ruby, but I have only used it in a limited fashion.
> 
> Don't really care what anyone says, but Visual Basic is actually a rather nice language in its current form.
> 
> Java's my first language, but it's just okay. The lack implicit instantiation and passing primitive data types by reference is stupid.


VB is alright. It's not my favorite language, but I can definitely see the appeal and don't understand a lot of the hate that goes behind it, especially in the .NET form. I think a lot of people prefer C# because they come from either a C or Java background and the VB syntax is foreign to them (as it is to me, since I come from a C and Ruby background).


----------



## MegaTuxRacer

wellnowwhat said:


> VB is alright. It's not my favorite language, but I can definitely see the appeal and don't understand a lot of the hate that goes behind it, especially in the .NET form. I think a lot of people prefer C# because they come from either a C or Java background and the VB syntax is foreign to them (as it is to me, since I come from a C and Ruby background).


It's a very verbose language, so it can be a pain to code with, but it's extremely powerful and intuitive. The latter is what I like about it.


----------



## b90

Takadox said:


> Well maybe next he will learn lisp and COBOL and fortran


Don't joke around with that! A good friend and former fellow student of mine went on to pursue a masters degree in signal processing. They learned FORTRAN.


----------



## Takadox

b90 said:


> Don't joke around with that! A good friend and former fellow student of mine went on to pursue a masters degree in signal processing. They learned FORTRAN.


Interesting I too am going into signal processing, but so far it is mostly C and matlab, maybe then I will too. Lol


----------



## b90

Takadox said:


> Interesting I too am going into signal processing, but so far it is mostly C and matlab, maybe then I will too. Lol


Nice. Matlab isn't that bad at all. I'm going in to nano electronics, and I think I'd be happy with pretty much anything they throw at us as long as I never ever have to create a Windows 8 Store App ever again.


----------



## Takadox

b90 said:


> Nice. Matlab isn't that bad at all. I'm going in to nano electronics, and I think I'd be happy with pretty much anything they throw at us as long as I never ever have to create a Windows 8 Store App ever again.


Cool, I know plenty of nano guys. Well win8 apps are better than assembly, but it depends on the day and project. What did you use for the apps? C#, VB, or managed C++.


----------



## b90

Takadox said:


> Cool, I know plenty of nano guys. Well win8 apps are better than assembly, but it depends on the day and project. What did you use for the apps? C#, VB, or managed C++.


C#  Which I didn't mind at all, really. But with the Win8 Store things, it is not fun at all.


----------



## Takadox

b90 said:


> C#  Which I didn't mind at all, really. But with the Win8 Store things, it is not fun at all.


Well I have never written a win8 store app, so I wouldn't know. But I do know that dealing with vague or difficult APIs can drive one mad, so maybe that's it, but I'm sure you can tell me.

Also C# nice, however dealing with "unsafe" things such as pointers is stupidly annoying in a managed environment. And as much as you want to avoid it, it is more efficient than running some C API outside it.


----------



## b90

Takadox said:


> Well I have never written a win8 store app, so I wouldn't know. But I do know that dealing with vague or difficult APIs can drive one mad, so maybe that's it, but I'm sure you can tell me.
> 
> Also C# nice, however dealing with "unsafe" things such as pointers is stupidly annoying in a managed environment. And as much as you want to avoid it, it is more efficient than running some C API outside it.


Exactly! Also, async methods are a pain in the ass, not to mention that all (well, many) the libraries I've grown accustomed to in forms and asp aren't usable, oh and our project at school was limited to grid-applications, and we couldn't download APIs from external or internal sources. With the exception of CodeFirst and its dependencies.

I wanted to make an app with a map in it. Turns out BingMaps isn't included in Visual Studio 2012. So Microsoft struck gold again and became (probably) the only providers of a development platform geared toward mobile devices which doesn't include their own map libraries by default. Screwed me over big time and I failed the class. (I skipped a few lectures and the professor never specified this anywhere on his webpages so I was told about this the last week.)


----------



## Takadox

b90 said:


> Exactly! Also, async methods are a pain in the ass, not to mention that all (well, many) the libraries I've grown accustomed to in forms and asp aren't usable, oh and our project at school was limited to grid-applications, and we couldn't download APIs from external or internal sources. With the exception of CodeFirst and its dependencies.
> 
> I wanted to make an app with a map in it. Turns out BingMaps isn't included in Visual Studio 2012. So Microsoft struck gold again and became (probably) the only providers of a development platform geared toward mobile devices which doesn't include their own map libraries by default. Screwed me over big time and I failed the class. (I skipped a few lectures and the professor never specified this anywhere on his webpages so I was told about this the last week.)



Ouch.
CS classes sometimes man. Luckily my current teacher is new and allows whatever you like, but when I was working in C we were allowed no libraries ><


----------



## Cael

VB was my first programming language, so I'm inclined to call that my favorite for opening me up to the world of programming. But I really enjoy Javascript the most.


----------



## Quinlan

I've worked with VB, Java, Javascript, Python, and C. My university used Java to teach OOP and that is where I am the most knowledgable. Python is my favorite.

I'm not actually a programmer though. I'm a database guy.


----------



## geekofalltrades

I'm a bioinformatician and I use Perl for everything. I also know some C/C++ and PHP, and have worked with Java, LISP, and Prolog.

My favorite has been Perl for ages. My least favorite was probably Java (system.stupidlylongname.stopstopwhatareyoudoing.whyisthisevennecessary.iwillchokeabitch.print("why on earth wouldn't you just let me type \"print\" you piece of crap\n")


----------



## RetroVortex

I tried reading a book on JavaScript today.
I actually started to pass out near the end of the first chapter.
(Learning by reading seems to do this to me for some reason, since I then went on to read a fiction book and I was totally fine)


----------



## StephMC

Favorite: C# probably. Although I think JQuery is pretty damn cool.
Use the most: VB -- my company's software is primarily written in VB
Least favorite: Uh.. I dunno. We actually have a few Cobol programmers that work here. Don't know Cobol, but it looks annoying.


----------



## Epherion

StephMC said:


> Favorite: C# probably. Although I think JQuery is pretty damn cool.
> Use the most: VB -- my company's software is primarily written in VB
> Least favorite: Uh.. I dunno. We actually have a few Cobol programmers that work here. Don't know Cobol, but it looks annoying.


COBOL has good readability IMO, do you work for a financial firm?


----------



## StephMC

Epherion said:


> COBOL has good readability IMO, do you work for a financial firm?


Nah, a small software company that has been around about 30+ years. Their original software was written in COBOL, but we're working to re-write it all.


----------



## Epherion

StephMC said:


> Nah, a small software company that has been around about 30+ years. Their original software was written in COBOL, but we're working to re-write it all.


Neat, i hope they pay your well for that. If not, ask for a raise.


----------



## jdstankosky

geekofalltrades said:


> I'm a bioinformatician and I use Perl for everything. I also know some C/C++ and PHP, and have worked with Java, LISP, and Prolog.
> 
> My favorite has been Perl for ages. My least favorite was probably Java (system.stupidlylongname.stopstopwhatareyoudoing.whyisthisevennecessary.iwillchokeabitch.print("why on earth wouldn't you just let me type \"print\" you piece of crap\n")


If it wasn't for Eclipse or Netbeans etc. auto-complete features and such, I think the suicide rate amongst Java developers would be astronomically high.


----------



## Outside_The_Box

MQL4. I think it's based on C# or C++, not sure. But either way I know it and use it to make custom technical indicators and auto-trading programs for Metatrader 4. I like it because it makes me money in the markets.  Here's a sample:



> #property indicator_chart_window
> #property indicator_buffers 1
> 
> 
> //---- input parameters
> 
> 
> extern int periods = 5;
> extern double multiplier = 1.0;
> extern int xDistance=5;
> extern int yDistance=20;
> extern int myFontSize = 15 ;
> extern color colorFont = DarkBlue ;
> extern string myFont = "Arial" ;// "BRADDON"
> int pipMult = 10000;
> double buffer[];
> 
> 
> string prefix = "";
> 
> 
> //+------------------------------------------------------------------+
> //| Custom indicator initialization function |
> //+------------------------------------------------------------------+
> int init()
> {
> 
> 
> if (StringFind(Symbol(),"JPY",0) != -1)
> {
> pipMult = 100;
> }
> 
> 
> if (multiplier != 1.0)
> {
> int percentage = multiplier*100;
> prefix = percentage + "% of ";
> }
> 
> 
> 
> SetIndexBuffer(0,buffer);
> SetIndexLabel(0,"ATR (" + periods + ")");
> SetIndexStyle(0,DRAW_NONE);
> IndicatorShortName(prefix + "ATR (" + periods + ")");
> 
> if(ObjectFind("label_ATRinPips")==-1)
> ObjectCreate("label_ATRinPips", OBJ_LABEL, 0, 0, 0);
> 
> 
> ObjectSet("label_ATRinPips", OBJPROP_XDISTANCE, xDistance);
> ObjectSet("label_ATRinPips", OBJPROP_YDISTANCE, yDistance);
> 
> 
> //----
> return(0);
> }
> //+------------------------------------------------------------------+
> //| Custor indicator deinitialization function |
> //+------------------------------------------------------------------+
> int deinit()
> {
> if(ObjectFind("label_ATRinPips")!=-1) ObjectDelete("label_ATRinPips");
> return(0);
> }
> //+------------------------------------------------------------------+
> //| Custom indicator iteration function |
> //+------------------------------------------------------------------+
> 
> 
> int start()
> {
> int limit;
> int counted_bars=IndicatorCounted();
> //---- check for possible errors
> if(counted_bars<0) return(-1);
> //---- last counted bar will be recounted
> if(counted_bars>0) counted_bars--;
> 
> limit=Bars-counted_bars;
> 
> 
> 
> 
> for (int i = 0; i < limit; i++){
> double stopLoss = MathCeil(pipMult * multiplier * (iATR(NULL,0,periods,i)));
> buffer_ = stopLoss;
> }
> 
> 
> //Comment(prefix, "ATR (", periods, "): ", buffer[0], " pips");
> string text = prefix+ "ATR ("+ periods+ "): "+ DoubleToStr(buffer[0],0)+" pips";
> ObjectSetText("label_ATRinPips",text, myFontSize , myFont, colorFont);
> 
> return(0);
> }
> //+------------------------------------------------------------------+
> _


----------



## StephMC

Outside_The_Box said:


> MQL4. I think it's based on C# or C++, not sure. But either way I know it and use it to make custom technical indicators and auto-trading programs for Metatrader 4. I like it because it makes me money in the markets.  Here's a sample:


Awesome! I've been meaning to pick up a language like that


----------



## Outside_The_Box

StephMC said:


> Awesome! I've been meaning to pick up a language like that


One for the markets? Well there's MQL4 for Metatrader4, NinjaScript for NinjaTrader, ThinkScript for Thinkorswim, and Easy Language for TradeStation (and others). Take your pick. I think most of them are based on C#. I've been trading for almost 5 years, and writing programs is a whole new world for me. I think it's great. I can write a program to follow my strategy and I can turn it on when I go to bed or leave the house, and it will do automatically what I would have done anyway if I were at my computer. It's sweet. I never miss opportunities now, and given the fact that the currency markets trade 24 hours, that's a pretty big deal. No more sleep deprivation. LOL


----------



## StephMC

Outside_The_Box said:


> One for the markets? Well there's MQL4 for Metatrader4, NinjaScript for NinjaTrader, ThinkScript for Thinkorswim, and Easy Language for TradeStation (and others). Take your pick. I think most of them are based on C#. I've been trading for almost 5 years, and writing programs is a whole new world for me. I think it's great. I can write a program to follow my strategy and I can turn it on when I go to bed or leave the house, and it will do automatically what I would have done anyway if I were at my computer. It's sweet. I never miss opportunities now, and given the fact that the currency markets trade 24 hours, that's a pretty big deal. No more sleep deprivation. LOL


Very nice! That's exactly why learning a language for the markets is so appealing to me -- I'm all about automating everything I possibly can. I was actually thinking of trying to pick up Easy Language, but I've yet to look into it very much. If it's based of C#, that's perfect. Should be an easy transition. Thanks for the info


----------



## jdstankosky

Outside_The_Box said:


> One for the markets? Well there's MQL4 for Metatrader4, NinjaScript for NinjaTrader, ThinkScript for Thinkorswim, and Easy Language for TradeStation (and others). Take your pick. I think most of them are based on C#. I've been trading for almost 5 years, and writing programs is a whole new world for me. I think it's great. I can write a program to follow my strategy and I can turn it on when I go to bed or leave the house, and it will do automatically what I would have done anyway if I were at my computer. It's sweet. I never miss opportunities now, and given the fact that the currency markets trade 24 hours, that's a pretty big deal. No more sleep deprivation. LOL


You made an algorithm that trades for you?

I think my Ne's fancy just got tickled.

Are you generally profiting from this or losing from this? Either way, it sounds freaking fun.


----------



## Outside_The_Box

jdstankosky said:


> You made an algorithm that trades for you?
> 
> I think my Ne's fancy just got tickled.
> 
> Are you generally profiting from this or losing from this? Either way, it sounds freaking fun.


It is fun, it stimulates my analytical side and my creative side. The only thing is though, is that you have to know when and when not to use it/them. I only use it on trending markets where you buy the dips and sell the rallies. Using an automated system that is designed for trending markets on a ranging market will only make you lose money. That's where a lot of people get into trouble, especially newer traders. They think it's a magical program that will do their thinking for them, but it isn't. It still has limitations, but if you know when to deploy it and when to put it away you can make some truly awesome things happen.


----------



## jdstankosky

Outside_The_Box said:


> It is fun, it stimulates my analytical side and my creative side. The only thing is though, is that you have to know when and when not to use it/them. I only use it on trending markets where you buy the dips and sell the rallies. Using an automated system that is designed for trending markets on a ranging market will only make you lose money. That's where a lot of people get into trouble, especially newer traders. They think it's a magical program that will do their thinking for them, but it isn't. It still has limitations, but if you know when to deploy it and when to put it away you can make some truly awesome things happen.


I want a new hobby. Teach me, O Wise One.


----------



## Outside_The_Box

jdstankosky said:


> I want a new hobby. Teach me, O Wise One.


That's a pretty tall order. LOL

First you need to learn how to trade. Technical analysis, fundamental analysis, global macroeconomic analysis, risk management, trading psychology... there's a list.

And just from the technical analysis category you're going to have to learn about support and resistance, trend lines, chart patterns, Elliott Wave Theory, swing point analysis, Fibonacci studies, moving averages, the many different kinds of technical indicators, pivot points, the list goes on. 

If you want to trade currencies like I do then I'd advise starting here. Learning trading is a very long journey, and the more you learn the more there is to learn. There's a very high failure rate but that's because people try once or twice and give up. But if you approach everything in life like that then you'll never succeed at anything. Quitting trading after one or two years because you haven't "made it" yet is the same thing as a med student quitting college after one or two years because they're not a doctor yet. It doesn't make sense for medicine, and it doesn't make sense for trading either. I don't know why people think it's any different from anything else, but they do. But anyway...

Good luck!


----------



## The Healer of Souls

geekofalltrades said:


> I'm a bioinformatician and I use Perl for everything. I also know some C/C++ and PHP, and have worked with Java, LISP, and Prolog.
> 
> My favorite has been Perl for ages. My least favorite was probably Java (system.stupidlylongname.stopstopwhatareyoudoing.whyisthisevennecessary.iwillchokeabitch.print("why on earth wouldn't you just let me type \"print\" you piece of crap\n")


Cool! I'm going to university and I'm hoping to major in Computational Biology. However, I still need to improve my programming skills.  So far I only have experience with Java, C++ seems a bit more confusing. Then again, I'm a noob


----------



## LostTheMarbles

The Healer of Souls said:


> Cool! I'm going to university and I'm hoping to major in Computational Biology. However, I still need to improve my programming skills.  So far I only have experience with Java, C++ seems a bit more confusing. Then again, I'm a noob


C++ is easy enough when you get your head around it, I find it simpler than Java.

Java's good for beginners because it stops you doing stupid stuff, C++ doesn't have quite so much control but it gives you a bit more power and doesn't have to run in a virtual machine.


----------



## chibiidol

at the moment i only know python. However, i start college in the fall and expect to learn more mainly c and java.
after that... well who knows


----------



## Howard the Duck

Java opens the most doors for you!


----------



## LostTheMarbles

Howard the Duck said:


> Java opens the most doors for you!


Depends what doors you want opening.


----------



## blit

Asm, C, and Haskell are the languages that I really need atm.


----------



## blit

Howard the Duck said:


> Java opens the most doors for you!


While closing your mind. _Oh snap!_


----------



## smolio

I still feel kinda like a beginner in programming. I've only played around with Ruby and really want to try Python. I had a lot of fun learning the coding basics with websites like codeacademy and rubymonk, but I'm not sure how to dive off deeper from there. 

I tried to be daring and finally give C+ a shot but I had to back down like a pussy. Made me feel like a noob all over again.


----------



## OrdinarinessIsAFWTD

Python, JavaScript, with a small helping of Matlab

Would really like to learn C++ and/or Ruby


----------



## Ahiko

C++, C, Java, C#, Ruby, Python, Perl, JavaScript, jQuery, PHP, Grails, Flex

My favorites are C++ (academically) and C# with ASP.NET (professionally).

Least favorites are Grails and Flex.

OH and writing in assembly language level or below. Anything lower than C is way too tedious.

<3


----------



## HypoTempes

1. C/C++ POWER !!!!! 
2. Java Versatility. 
3. Prolog DB's. 
4. Ada Reliability. 
5. Assembly. Speed and size.(and for the LOL...Check the madness one can unleash Return Infinity - BareMetal OS ) 

Note Java + XML is used solely for development of Android apps. (I'm not realy interested in using XML beyond this tbh)


----------



## ZaneCross

*Favorite programing language*- Either FreeBASIC or Java. Now, I know no one here has heard of FreeBASIC, but it is probably one of the best basic dialects I have ever seen. Windows/Linux compatible, Object Oriented, AND is compatible with a large number of C/C++ libraries. So yeah, it's amazing.

*Most used programming language*- FreeBASIC. No question. Go look it up. I also use Lua quite often.

*Which language do I like least*- That would have to be Visual Basic.


----------



## ThreadDeath

*Re: Languages of choice*

I've been using Java for most projects during the past couple of years and must admit that I'm still quite enjoying it. In fact, I even chose Java (EE) to implement my thesis project and haven't regret it. Despite having ceased being "cool" and not unfairly having been criticized for its verbosity, when it comes to moderately complex business applications I find that Java really shines, due to:

Its familiar syntax.
The immense choice of APIs the JDK offers.
The immense choice of tools.
The multitude of implementations provided by different vendors.
Its vibrant ecosystem's vast amount of communities and frameworks.
The _open_ nature of the specifications (JCP).
The newer generations of JVM languages have too shown great potential; I still prefer to stick with Java for the time being though, when all I need is get the job done without any surprises along the way (inevitably trading a little bit of productivity for reliability in the process).

As for C++, around 2010 I restrained myself from ever using it again for writing new code, having quite painfully come to the conclusion that I haven't got enough time left on this planet to fully master it :tongue:. It's a great language but generally not worth the effort. The same seems to somewhat hold true for Scala.

Other languages I sporadically use:

C (who doesn't? roud.
PHP (only for trivial projects since the codebase somehow always tends to spiral out of control in my case).
Bash and Perl (for my daily *nix needs, whenever no -practical- GUI alternative's available).
Languages I'd like to invest some of my time into:

D (promising but sadly very undermarketed).
Some of the countless JavaScript client-side frameworks out there.


----------



## 66393

Takadox said:


> Ouch.
> CS classes sometimes man. Luckily my current teacher is new and allows whatever you like, but when I was working in C we were allowed no libraries ><


i am currently experiencing the latter >.<


----------



## Tzara

1) C
2) Java
3) Fucking Assembly

I mostly use HDLs,
verilog, VHDL, ABEL, assembly etc..
I'm surprised no one mentioned HDLs. No one is into hardware?


----------



## S33K3RZ

Takadox said:


> So what is your favorite programming language?
> Which do you use the most?
> Which do you like least?
> among anything else...
> 
> Discuss the paradigms and reasons for picking each choice, the why.
> 
> I am not too sure as to what my favorite is right now, but I have been using C# a lot recently and have come to like it quite a bit. It has a lot of features built in that take care of a lot of things that were problematic in other languages. It supports pointers, but does not need them. It feels very professionally written. It also is still pretty efficient.
> 
> I like C++ because it was my first language. It is efficient and powerful, but not as unforgiving as other older languages.
> 
> I use java mostly because of school and such. Its best feature is its cross-platform usability and massive standard library.
> 
> Well I might add more later, but now its your turn


I am fluent with C#, C++, Objective C, HTML5, CSS, Java, Swift, Javascript, PHP, Python, Perl, VB, Powershell, Cobol, Bash and I used all of them this year.

Powershell and Swift are the worst languages as a direct result of their attempt to make it easier for developers to use. Their multiple redundant ways to perform the same function means that great developers have to learn every single way to call something. Also their flexibility promotes poor development practices making them the two worst languages of all time that I have learned/used.

C# and Java are the best but there are issues. 

*Java issues:*

Does not have the option to compile into an exe reducing portability.
Fairly slow development, compile, execution, perhaps this is a perception of legacy issues; but it feels this way.
Loads of major security issues causing frequent releases of the run time environment.
Focus of speed to market over stability causes patches to code to create errors and too frequently deprecated functions. 
Last I checked Java does not have the ability to cache exe that was compiled on the system (interpreter flaw IMHO).
Very Very verbose, meaning lots of typing when coding.
The communities of developers tend to be elitist A-Holes


*C# issues:*

Uses .NET framework which has terrible reliability issues (very buggy even on .NET 4.5.1)
Major issues in Visual Studio IDE when you try to port between .NET versions.
Very few alternatives to the super expensive official Visual Studio engine.
Much of the syntax vocabulary was poorly selected, making for verbose or very complex coding that is much easier to do in other languages for anything beyond basic usages (i.e. mostly business and enterprise developers hate this).
Lots of code usually forces you to use C++ Calls, requiring people to know two languages.
Stupid restrictions from MS for "Un-Managed code"
Code executes fast but there is no way to package .NET dependencies into a single exe which means it requires packaging.
MSI packaging is antiquated and the tools for it are either utter crap or very expensive and still weak.
No interpretative scripting engine available reducing portability.

I dislike many of the newer and popular languages out there; I have been learning BNF a bit with the intent of building my own programming language that fixes many of these issues. Perhaps I will do it some day soon, but haven't gotten to it yet.


----------



## AliceWonder

php is 90% of what I use, some JS.

I have and will use others when they are more appropriate (e.g. perl, bash, tcl, and even the kind you have to compile) but I can't say I have a favorite language.

For generating content, I can say I love DOMDocument from libxml2 - but you can use DOMDocument in many languages, just the syntax sometimes slightly varies.

In fact when using DOMDocument in php I initially used the Java documentation because it was much better written and easy to figure out the differences.

I like DOMDocument because I like seeing XML content as a collection of objects that can be manipulated and re-arranged at will.


----------



## Transvaler

It depends on what you want to be able to do. 

These are my favourites:

*Java*

Java is one of the most versatile programming language to date. It's used in a seemingly infinite array of appliances. I'd recommend getting Eclipse as a programming environment, or alternatively notepad++. A good book for getting to know Java is How to program Java from Deitel & Deitel. It's quite lengthy and covers just about everything you might need to learn. 

*C# in Visual Studio*

C# used in the Visual Studio Integrated Development Environment is extremely popular. It's not only effective for writing a simple offline program, but if you want to experiment with creating websites or online content the Visual Studio package might be for you. I say "Integrated Development Environment" specifically because a lot of programming languages don't have an environment where you can just drag and drop text boxes, buttons, images etc. on a windows form. With Visual Studio's IDE you can do this with relative ease. It already lists all the interface control in a MS Word-ish toolbar. You'll see with some languages, including java, one has to create an object via code. The book I used to learn C# was C# for students. 

*Visual Basic*

Visual Basic is fairly common under engineers. If you feel you're not quite into programming, but want it to serve a complementary role VB is perfect. It's very similar to C#, but with a more simplified and easy to use syntax. If I'm not mistaken you can program VB in Visual Studio.


----------



## AshtangiBear

I did research in DSP. I only worked on very low level languages, assembly for MIPS and SHARC. I do not miss it one bit.


----------



## ClarityOfVision

Thanks for the interesting read guys. I'm pretty new to programing and have only done VBA so far with many successes. Now I'd like to become a bit more versatile in my programming and I'm looking for input on which language to work with next. There are many articles on the internet about it and I'm reading about it, so don't give a Let Me Google That For You as I'm already doing that. Just looking for more input from experienced people. So which language would you recommend from the standpoints of: Usefulness, complexity - result ratio, amount of use in professional business, time to master. 

Thanks!


----------



## nO_d3N1AL

When O first learned C I HATED it but Java just "clicked" with me. I get it - everything about it makes sense and I use it where possible. I like everything about it - the OO design, the syntax, the key words... I try to learn C++ but it just looks like gobbledegook! So messy and dull compared to Java. It just LOOKS ugly. Also C programs are pretty much unreadable imo - the naming conventions and lack of transparency in what functions do make it hard for anyone other than the reader to follow. For playing around with memory addresses and more low-level programming it's simple and easy but for making SOFTWARE it's horrendous. I don't get why someone would use anything other than Java tbh - it's just so intuitive! And JavaScript is pretty cool too because it's easy to learn and do stuff with. Although MATLAB isn't a programming language, I find the highly simplistic/barebones design quite pleasant for getting things done. Writing algorithms, manipulating arrays and the plethora of in-built functions make it a good package for working with data/files. The syntax is nice too and fewer key words make it easer to understand


----------



## AshtangiBear

If we want to include MATLAB, then add that to my list. Was used extensively for prototyping, then we'd input the algorithms in to programming for DSP chips.


----------



## ThreadDeath

ClarityOfVision said:


> from the standpoints of: Usefulness, complexity - result ratio, amount of use in professional business, time to master.


I'm afraid these aspects are a little vague; if you clarified them a little, more members would perhaps be willing to share their experience. Stating some use cases would too make sense, as there really is no single language ideally suited for every imaginable project, just languages that are more suitable than others for completing a single, well-defined task.

The following are my interpretations of your mentioned perspectives; please assert whether my understanding of them is consistent with yours.


*Usefulness*: How broad the language's pertinence spectrum is; language X, for instance, can be used for embedded programming, web application development and everything in between; language Y is solely destined for image manipulation.
*Complexity - result ratio*: I'd rather call this _productivity_, defined as the number of source code lines required to carry out a task.
*Amount of use in businesses*: I'd derive 3 metrics from this one: a) _amount of code written in the past_ (completed products), b) _amount of actively maintained code at present time_ and c) _likelihood that the language will be used in future projects_. These respectively suggest the language's maturity, indicate its current market share and measure developer --or at least leadership-- satisfaction and confidence in it, projecting future demand.
*Time to master*: I don't believe one should consider herself _master_ of a language, unless she's grasped its formal specification and underlying technology, that is, how the language's runtime environment and toolchain have been implemented and function, which obviously also requires knowledge of the language these have been implemented in. This can take years and is hardly ever the case. What in my opinion would be interesting to know instead, would be the time one has to invest in order to become _proficient_ in a particular language, i.e. capable of collaborating with others on shared code and producing non-trivial software (e.g. a filesystem explorer in C, a multithreaded server of some sort in Java).

Note that all of the above should be evaluated on the basis of the language itself and its accompanying standard library; non-standard extensions, libraries and frameworks should be disregarded, as they're seldom leveraged in a corporate environment. Additionally, it's sometimes useful to regard frameworks as distinct languages.

There are of course other criteria one should as well take into consideration; the following are some of the first questions I tend to ask anyone evangelizing language X:

What does the average X coder earn?
Is X backed by at least one legal entity? Is that company or organization committed to financially support the language's evolution and growth over the next 5 to 10 years? For how long will the current technology be supported?
Does the language have a specification? Is it an open standard? To what extend can the community shape the specification over time? Are there multiple implementations offered by different vendors?
Is at least the reference implementation well-documented? Are quality literature and support communities readily available?
Are there at least 2 well-known frameworks within X's ecosystem?
How about tools for X? No, not just IDEs, I'm referring to builders, dependency managers, test suites, code profilers --what are my proprietary and open-source options?



ClarityOfVision said:


> So which language would you recommend


Learn Ja --no, screw it, I'm biased as hell.


----------



## yerma

I am playing around with assembly language mnemonics currently. Are anyone here around still using assembly programming


----------



## Antiloop

@ClarityOfVision
As @ThreadDeath said it's difficult to give advice unless you're being more specific about what you intend to do. If you just want somewhere to start programming, but don't know where, I think I'd recommend any language with the C-syntax, as being familiar with that syntax will pave the way for you to learn other languages with the syntax. Some of them are aimed at web development, like PHP (usually along with JavaScript) and C# (asp.net). 

I had the misfortune of learning PHP in a recent job. They said I could use any language I wished, and I was initially thinking about going with C#, since I had worked with it before and found it quite convinient for the task. But since the guy I'd be working with, who had been responsible for the development of the site thus far, was really good in PHP, and since PHP had a similiar syntax I thought it might be good if I learn PHP and use it instead, also since C# and asp.net would've required some initial setup. I... didn't like it. The naming-conventions in PHP are overly verbose, and even though PHP sole purpose is web development, I find that it isn't very good at it at all! It's quite inconvienient to generate HTML-code with it in the right places. I don't tihnk the community is as helpful in PHP as it is in C# either. Bottom line: I recommend C# over PHP for web development. I've also heard C# has quite good support for making games, which I guess comes with Microsoft. Some also say that Java is good for web development, but I've never used Java for that, nor worked with anybody that did, and I'm a bit sceptical...

C, C++, and Java are good application-PL. C++ is used a lot in games. C and C++ are relatively "close to the machine" and can do some things that other languages cannot do, such as operator overloading, and they're also quite fast (see link below). However, I think C and C++ are awful languages to begin with, because they can be quite unforgivin when making mistakes, and the memory-allocation that needs to be handled by the programmer is something you perhaps might want to learn later. In this regard Java will be a better choice because it's relatively difficult to make mistakes in Java - it's designed to prevent you from making mistakes (the flip side being that it might also prevent you when you know what you¨re doing).

So in general I guess I'd recommend that you learn any C-like language, and I think Java would be a good start because it's quite easy to learn. I'd also recommend that you look up what languages are being used by potential companies that will hire you. Look at sites and see what languages they're asking for. I've seen a lot of applications asking for Java programmers (another point in its favor). If you look up university courses you might also get an idea about what languages are worth learning. 

As I mentioned earlier, speed is a hallmark of C and C++, and Java is quite slow. I was looking for an article that demonstrates the differences, but I couldn't find it. Instead I found this. Which might give you an idea. Even more interesting is the table further down the page which shows how different languages handles different strings being cast to numbers. All the exceptions in Java's case, that have to be handled, can give you an idea of how tedious it can be to use it sometimes. Also, Perl managed to be faster than C... that's funked up.

For the record, my personal favourite language is Python, which does not share the C-syntax.


----------



## Adikshith Ojha

It is the only language I know c++


----------

