4 ms·
As an old pragmatic, I believe for a new startup language of choice must be Java/C#. * Stable, Well understood language. * Rich ecosystem. * Fast enou
by blackoil 6y ago
As an old pragmatic, I believe for a new startup language of choice must be Java/C#.
* Stable, Well understood language.
* Rich ecosystem.
* Fast enough.
* Plenty of developers to hire from.
* Scales well to large projects.
No other language/ecosystem ticks all the checkboxes.
- dcolkitt 6y agoGo? Typescript? C++1x?
- gbersac 6y agoC++ is much more complex than Scala! Typescript is great because you can create back and front in the same language.
- camjohnson26 6y agoPython, Ruby, JavaScript
- mumblemumble 6y agoIf the list is meant to be universal, I would strike the last two from it, and clarify that "fast enough" means, "Fast enough for the problem you're trying to solve." Working from the bottom: Scaling well to large projects is only a concern if you expect your individual projects to become large. I've worked on monoliths, and I've worked on systems that follow more of a Unix philosophy. In the former case, we had one project with a 7 digit line count. In the latter case, it was rare for a single application's codebase to grow to more than a few thousand lines of code. "Plenty of developers to hire from" is often optimizing for the wrong problem. In many lines of business, domain expertise is a much more valuable skill, because it can only be developed through years of first-hand experience. A new programming language, on the other hand, can typically be taught to a reasonably skilled programmer in no more than a couple weeks. Also, when you're just starting out, the single best programming language you can pick is the one that the people actually starting the business already know the best. They will not have senior mentors to help them learn the best way to use a new language. Finally, "fast enough" is not a single target or a strict hierarchy. I used to work at a shop where we used Python, C#, and C++. Only C++ was fast enough, performance-wise, for some problems. Only Python was fast enough, productivity-wise, for other problems. C# covered the (large) middle ground. It's also not a strict hierarchy. At my current job, I'm in the middle of a project to replace some Java components with Python. Java has not proven to be fast enough, performance-wise, for this particular problem, while Python gets us there with room to spare.
- oblio 6y ago> "Plenty of developers to hire from" is often optimizing for the wrong problem. In many lines of business, domain expertise is a much more valuable skill, because it can only be developed through years of first-hand experience. A new programming language, on the other hand, can typically be taught to a reasonably skilled programmer in no more than a couple weeks. This is a gross programming fallacy. Yes, you'll learn the language at the superficial level. But learning the ecosystem, best practices, that takes years. Unless your project is short lived or something trivial, in which care you won't care. But if it's going to live for a long time and will have a major impact, the decision to hire programmers that have 0 experience in your target language will bite you in the butt, years later.
- hurril 6y agoNo they should absolutely not and the reason has nothing to do with the languages as such (which would be fine choices!) and all to do with people. A senior programmer that writes Java or C# in 2021 is not going to jump ship from his comfy overpaid position into your fancy space ship. Why haven't you learned anything new?
- mattmcknight 6y agoAs an empirical thinker...consider Ruby and Python (and I expect back end JavaScript will get in there soon enough) https://charliereese.ca/article/top-50-y-combinator-tech-startups#stats https://charliereese.ca/article/top-50-y-combinator-tech-sta...
- thu2111 6y agoActually, Kotlin does. I know this because I did a startup and chose Kotlin for it a few months before the language hit 1.0 (bold move!). The Kotlin ecosystem is the Java ecosystem. It runs as fast as Java, partly because Kotlin is basically (90%) a better syntax for Java. It scaled well as the project got bigger. And of course in the beginning nobody knew Kotlin but it didn't hold back hiring at all - you just take Java devs, tell them to read the language guide and they're 90% of the way to being Kotlin devs. Some code review to show them useful little tidbits in the stdlib and you're done. It wasn't a problem. 10/10 would use for a startup again (and will)
- paedubucher 6y agoGo ticks all those boxes, including "easy to learn".
- oblio 6y agoDoes it? Does it have a production ready ORM (such as Hibernate or SQLAlchemy) or solid cross platform GUI libraries? (this is a big hit against C#, too, by the way) :-)