Best Programming Language for Startups
kevindewalt.com
kevindewalt.com
Finally, if you still don’t know what language to pick, choose Ruby on Rails because it is the best. If you don’t agree, get ready for a public stoning.
Clearly, some very sound thinking! I like this guy already!
More seriously, the article is spot on. I have one caveat though: don't settle for what you know if you really want to know something else.
For example, if you've been doing PHP programming for years, and know it really well, but are really keen to learn Python and Django, give it a try! My advice would be to try the new language/framework for 2 weeks. It sounds long, but actually 2 weeks is almost nothing.
After those two weeks you might go back to your previous language, satisfied that you know it's the right choice since you've tried the grass on the other side and it didn't taste any better. Or perhaps you'll switch to the new language, safe in the knowledge that yes, it is a lot better and you can probably do a better job in this new language.
I developed in ASP.Net on Windows for years but got tired of having to code in Windows and do everything else in OSX. I picked up a copy of Agile Web Development with Rails and gave myself a "2 week challenge". It's been a few months and I haven't looked back. I can't imagine going back to .NET.
Because Rails is a programming language?
For more evidence: http://www.google.com/search?q=php+sucks&ie=utf-8&oe...
Some languages allow you to shoot yourself in the foot more easily. Some have just better conventions and toolsets. VB6's object model just plain sucks in comparison to C#. C++ bugs are much harder to catch than Java's, and Java gives you a better toolset to find them (not that I'm a Java fan, I acutally dislike the language quite a bit).
Bjarne's phrase is pretty cute. But let's be honest, technical merit has never been in a factor in a large majority of business decisions. If that were so people would drop the horrible abortion that's ABAP or COBOL for SAP applications, Sun would drop Telnet as a default dameon and use a better shell than sh as a default. But hey, it's the most popular commercial Unix, right?
I have yet to see a fraemwork built on PHP that can match Django or ROR in terms of features or ease of use, starting from the fact that the language makes development of adequate template parsers or ORMs much more difficult given the lack of metaprogramming facilities. Oh, and while having fewer features it's also slower than the other language's reference implementations.
The only advantage PHP has is the preponderance of available developers and libraries (and those libraries allow to shoot yourself in the foot much more easily than the alternative languages by virtue of being just plain worse. Wake me up when there's something comparable to SQLAlquemy or Beautiful Soup on PHP). They're actually very significant advantages, but speak more about its legacy and inertia rather than any technical advantages.
Sometimes, this actually is a significant (technical) advantage.
Of course, PHP is not perfect, but which language is? Sometimes, even the old VB(A/S) can be the best choice to solve a given problem.
In my opinion, languages aren't the end in itself - they're just tools. I've get to know programmers that use "kiss-ass" technologies but cannot solve (business) problems.
Again, an example I've mentioned before: I you have no idea what the "De Casteljau"-algorithm is about, how could you implement a adequate solution for a given problem with any technology? But if you do, there's not so much difference implementing it with Canvas/JavaScript, SVG, VML, Whatever.
um. ruby on rails != language.
It's kind of an irrelevant distinction anyways. People don't really pick "languages", per se. They usually pick "language + libraries", and the line between third-party libraries and standard libraries is getting increasingly blurred.
And what definition would that be? Could someone please enlighten me because I have no idea where this comes from.
If the problem is unknown, then what are you working on?
If the solution is unknown, then figure it out (at least conceptually) before you start coding.
Am I missing something? This makes no sense to me.
This in no way diminishes your point, which I think is quite valid. I just found myself laughing out loud so it seemed worth sharing.
I have a lot of trouble with this statement. It is a tautology, it is necessarily true. Now that we both agree, what is the best tool for the job and how do we choose it? The OP gives the author's perspective. If you don't agree, perhaps you could share yours.
We use 5 (or 6, depending on how you count) different programming languages regularly at my startup and for strong business and technical reasons each of them is "the right tool for the job". We also have some other languages squirreled away in odd corners. In those cases, the languages tend to be "good enough" tools for their jobs (so there's no sensible reason to change something that is already working).