Favorite programming language

jrm said:
You've mentioned in the past that you would like experiment with emacs. You could kill two birds with one stone by introducing yourself to emacs lisp.

I have the same problem with emacs as I do with learning other languages. I don't get uninterrupted time and feel like, "I could be working on xyz problem right now." I'm not too busy but busy enough to completely fill my day.
 
fonz said:
The best programming language is the one that best suits the job at hand

That.

With the caveat also being "out of the languages you are proficient with".

If you've got time to learn the "best" language for a job, fine. But if not, I'd much rather have to maintain well written code in language X, rather than code written by a programmer trying to write code structured exactly like language X in language Y.



But yes, too many people get hung up on trying to use a single language for everything, and it's just counter-productive.

fonz said:
Moreover, there's a reason why most compiler building courses use Pascal as an example source language. Pascal is actually very well-designed, but somehow it appears to have died in the real world.

I hear it (Turbo Pascal, which is what I was using) evolved into Delphi.

But yes, I agree it is a very good teaching language as it is fairly strict with data typing, structure, etc.

Yes, there are things that are awkward in Pascal, but for those I used to end up writing inline assembly, and use Turbo Pascal as the glue to tie it all together.

I miss it somewhat.
 
fonz said:
Moreover, there's a reason why most compiler building courses use Pascal as an example source language. Pascal is actually very well-designed, but somehow it appears to have died in the real world.

Sad, but true. I think that pascal and it's sucessors have some kind of 'gap' between learned and proficient. You can learn the language pretty fast, but then it takes you a long time to write code in it that the compiler does not throw back at you. That this gap is filled with other (f.e. memory) problems and bugs in other languages does not help because you do not see it in that instant. Nicely put together here, also.
 
Number 1 programming language by usage or number 1 by programmer satisfaction?

I suspect it is the former... simply due to being the best supported Windows application development language.

Crivens said:
Sad, but true. I think that pascal and it's sucessors have some kind of 'gap' between learned and proficient. You can learn the language pretty fast, but then it takes you a long time to write code in it that the compiler does not throw back at you. That this gap is filled with other (f.e. memory) problems and bugs in other languages does not help because you do not see it in that instant. Nicely put together here, also.

Yeah, Pascal will complain at compile stage a lot more, but due to the typing you are a lot less likely to run into situations where the program compiles and then crashes at run time or (worse) compiles, runs and silently generates incorrect results :)

I often wonder how much more secure software would be if it wasn't typically written in C or C++.
 
throAU said:
Number 1 programming language by usage or number 1 by programmer satisfaction?

I suspect it is the former... simply due to being the best supported Windows application development language.

Obviously, C# became number 1 for its high usage and can not question the degree of satisfaction of MS developers, better let they lonely begin their flame war for reply what makes a good systems programming language :e
 
throAU said:
I often wonder how much more secure software would be if it wasn't typically written in C or C++.
Amen to that.

Also, forcing runtime array index checks, pointer checks, type checks ... makes for a lot more robust program. Yes, it costs some cycles (if it cannot be optimized away later), but compare that with the time you take debugging something or rebooting a crashed machine.
 
Sh and Dtksh. Hoping to get around to exploring other programming languages as well. :)
 
I couldn't agree more. Most the of the simple and stupid errors that have lead to stack overflow vulnerabilities could have been avoided by not using C/C++ at all for tasks where performance isn't critical. Optimizing the handling of user input (for example) by using C is plain dangerous and futile because most of the time it's linear in time, you won't gain an order of magnitude improvements there.
 
C and other languages that support primitive data types and have access to raw stack, have clear advantage only when working in tight loops or when dealing with unpadded binary formats.

At work I do ~80% of my code in pure python mostly binding code and user interface, ~18% in SQL functions that deal with data formatting, ~2% in Cython that deals working with C/C++ libraries/APIs directly and working with binary data and/or extensive loops. Writing everything from scratch in real world using C is not the brightest idea.

For my personal stuff I try to use C++ as it is such a beautiful language, creating neat polymorphic code layouts in C++ should be an art form.
 
Things like PYPL and Tiobe are a lot of hooey. Wouldn't a brand new language with no users rise quickly on PYPL just because people search for it? Wouldn't it rise quickly on Tiobe if no one used the language so those who do would put out a lot of 'help wanted' ads?

And who's looking for those tutorials? High school kids wanting to make a new game or seasoned professionals?
 
drhowarddrfine said:
Things like PYPL and Tiobe are a lot of hooey. Wouldn't a brand new language with no users rise quickly on PYPL just because people search for it? Wouldn't it rise quickly on Tiobe if no one used the language so those who do would put out a lot of 'help wanted' ads?

And who's looking for those tutorials? High school kids wanting to make a new game or seasoned professionals?

To consider that your opinion is objective, what alternative to measurement indexes can suggest? IMHO, it's the best way to conclude a good criticism.
 
To share some thoughts on this thread, on this thread, I'd like to post this thus somehow recursive entry ;)

I want to plead for learning more languages, even if you know you are not going to use them very often. On the university here, you are hit with imperative languages, functional languages and object oriented ones, typeless and type strict ones. Even if you know that you are not going to use scheme very often, learning such different languages does wonders for your thinking. A mind once stretched sufficiently enough never regains the original limits, as it is said. Also your jaw may drop when the tutor writes a huffman encoder in some lines on the blackboard.

Oh, and then throw in event driven things like verilog and VHDL, and suddenly a talent for spotting race conditions might manifest itself. I know all this sounds a little like boasting, but belive me : I could not write ten lines of verilog, VHDL or scheme (or others) now which would be accepted by the most sloppy compiler for them, because I did not use them since university. But it leaves traces in your ability to think, which George Orwell addressed with his newspeak in 1984. Your vocabulary shapes what you can say, and thus what you can think. And if your mental vocabulary does not contain things like always @, you might have trouble with efficiently thinking about event driven user interfaces or race conditions.

So, while we all have our 'favorite' language, please please do not stop there, and please do not stay too close to the language you prefer all the time. You might learn something suprising, or something useful. But you will learn something.
 
Crivens said:
So, while we all have our 'favorite' language, please please do not stop there, and please do not stay too close to the language you prefer all the time.
Good point indeed.

expl said:
I try to use C++ as it is such a beautiful language, creating neat polymorphic code layouts in C++ should be an art form.
Eep... Far be it for me to say that C++ is crap, or slow, or useless or anything. And I do understand the attraction of certain polymorphism concepts, but one thing that in my opinion C++ is not, is beautiful. I especially find the syntax for the polymorphism aspects of C++ downright horrendous. Most of the concepts are sound, but the syntax leaves a lot to be desired as far as I'm concerned.
 
fonz said:
Eep... Far be it for me to say that C++ is crap, or slow, or useless or anything. And I do understand the attraction of certain polymorphism concepts, but one thing that in my opinion C++ is not, is beautiful. I especially find the syntax for the polymorphism aspects of C++ downright horrendous. Most of the concepts are sound, but the syntax leaves a lot to be desired as far as I'm concerned.

I don't understand what you don't like there.. Syntax is very straight forward I don't think you can get it any more clear/simple as it is now, considering the prototypes are static and hard-typed at compile time (not comparable to dynamic prototypes of Objective-C, Python, etc..).

Compared to C, C++ structuring is amazingly beautiful when done correctly without to much template abusing. Just try to compare popular APIs that come in C and C++ and check how many unnecessary lines you have to write for simple things like maintenance of certain context without any benefit of performance.
 
cpu82 said:
To consider that your opinion is objective, what alternative to measurement indexes can suggest? IMHO, it's the best way to conclude a good criticism.

I don't know of an alternative. Not my area of expertise but something that doesn't work can't be the best of anything.

I briefly looked at your Wikipedia link and there is says something about PYPL that's different than the original post. There it says the data is collected using Google Trends of what developers search for. I don't know that you can narrow it down to "what developer's search for" in Trends but ...

A guy named Naisbitt used to write some books called "Megatrends" which outlined the future world based on trends his company followed by reading hundreds of newspaper from around the world. Note I didn't say "predictions" but "trends". The last two I read, years ago, have shown he was on target but his analysis is done by experienced humans and not data globbing.

So following trends can work. I just don't think the data gathering methods used by PYPL or TIOBE are the best ones.
 
As times goes by, I found that it is not a matter of what is your favourite language but what is your favourite language to do such and such question. For many programmers such and such can be substituted with everything, but I find myself happy to program some pieces in C, some in C++, many others in Perl, or shell or Lisp, or another one.

Now back to the question, I can say I love Perl even if I cannot use in my day-to-day job that is related to a language I don't like very much (the one that starts with J). And I can say that being a Perl programmer I don't feel interested in learning Python, even if one day I will do!
 
Back
Top