12 ms·
I think it's getting harder and harder to justify using anything but the most popular languages and frameworks. You need a VERY good reason to use anything exc
by andrewstuart 4y ago
I think it's getting harder and harder to justify using anything but the most popular languages and frameworks.
You need a VERY good reason to use anything except TypeScript/C#/Java/Golang/Python/React/Vue/Postgres/MySQL/SQL server/Oracle. Perhaps Rust. These technologies are good enough to get almost anything done these days. There's exceptions of course for example games tend to written in C++ and embedded is often C.
Apart from anything, you should be using these most popular technologies if only for the sake of recruiting.
Using less popular technologies like Erlang/Dart/Kotlin/Ruby/Elixir/OCaml/F# or whatever weird new JavaScript React alternative thing got you interested lately is a bad idea not just for recruiting but for support and community and documentation.
If you are the person deciding which technologies to use, you should probably be using the most mainstream thing you can, not the coolest newest thing that you read on Hacker News. There's any number of companies saddled with their main systems being built in the weird assed framework that the fourth-to-last CTO decided was a good idea, and those companies are now stuck with the problem.
I should note of course that my comments refer to company/organisation development. For personal projects or fun or whatever you should do whatever the heck you enjoy.
- xupybd 4y agoThere are also companies saddled with tech that was mainstream but is no longer. Adobes Flex was a great option until it was killed. Perl was everywhere now it's almost esoteric to find a greenfield project in Perl.
- justusw 4y agoRuby on Rails used to be one of the most popular ways of implementing MVC applications in the server. Has Ruby been hit by a similar fate?
- andrewstuart 4y agoAsk any company dependent on Ruby how its recruiting efforts are going.
- jweir 4y agoAnyone from Square, Stripe, or Shopify want to chime in on this? I haven't had a problem finding Ruby devs, but I haven't had to hire in a couple of years.
- cageface 4y agoI was back on the job market not too long ago and I was stunned to discover how many startups are still using Rails. It's well off the hype peak now but there's a lot more life in it than I supposed.
- slyall 4y agoNot dead just yet but things are not looking promising. eg Ruby is 20th on TIOBE vs 13th last year. Other measures are showing a similar downward trend. Not impossible to reverse but very hard, especially since Ruby only has once niche and has not been doing well there.
- aeontech 4y agoI have a friend that swears up and down that his startup on Erlang was able to deliver incredible speed of development and stability specifically because of language choice. WhatsApp, Facebook Chat used Erlang, and Discord is still using Elixir… make of that what you will, I suppose. And Ruby / Rails + your frontend of choice is still a ridiculously productive stack to bring up an app, and probably run it at any scale you’re likely to realistically hit (poster child being Shopify)… if you ever get to stage of “scaling problems”, you are at a stage where you’d be rearchitecting parts of your stack regardless of what your original implementation was in. So in sum, choosing a particular language because of popularity, I think, is not particularly useful framing. I’d say, choose one because it either gives you joy to write in and maps to your thought process well, or because it has a particularly strong ecosystem for the subject matter. Life is too short to program every day in a language that you dislike just because you think it’s the “safe choice” :)
- justusw 4y agoThat's an interesting point. Do you think your friend was able to deliver at such speed because of the familiarity with Erlang? Or was it so, that even with a lack of familiarity, the other advantages of the language were overwhelming? Also, may I ask what kind of application was being developed? I also wonder how we can define popularity better. Does that mean industry acceptance, number of GitHub repositories, number of StackOverflow questions, number of libraries, developer satisfaction surveys, etc. If you choose different metrics here, different languages and frameworks will appear popular. Svelte for example seems to be on top of some developer satisfaction surveys, but React is still one of the number one choices for frontends. C is the industry standard for embedded, but developers often do not enjoy programming in it.
- aeontech 4y agoI’m not sure how much Erlang he had done before he started the project… it was something in the professional group chat space, but Slack ate the world. Yeah, there is always a balance to strike and a multitude of factors that might lean the decision this way or that… And even in something like embedded it seems like there is movement, I have seen some posts about people using Zig or Rust or Nim for embedded programming for example.
- krick 4y agoYou need a VERY good reason to use anything except PHP. Perhaps Rust. These technologies are good enough to get almost anything done these days.
- charrondev 4y agoI find it very odd that PHP wasn’t even in the list of languages. It’s one of the most popular web languages (and that’s not just Wordpress). Additionally the standard request model of PHP (like with PHP-FPM) is a fast, efficient, and easy to learn model of request for new developers. Easily scalable new processes that are cleared at the end of the request. It seems like this is something people try to emulate with the “server less” model but PHP was built for this and is quite efficient at it.
- krick 4y agoIt is indeed a good and efficient tool, and popular too, but I'm kinda glad it wasn't on the list, because it basically is the point of my tongue-in-cheek comment: choosing the "universal list of tools to solve any problem" is a PERSONAL achievement. It's just basic reality that both Python and PHP are good enough to make things. Some people have one on the list, some another, some may have both. And it's not even true that Haskell cannot be on that list for any sane human. Admittedly, it's not on MY list, but that's just me. Popularity isn't the end of things, nor is it set in stone. Agda or TLA+ aren't very common, but neither are problems they are meant to solve. Neither is Verilog, but it's not even an alternative to anything popular. And Ruby wasn't popular before Rails. Then it was, then it wasn't again. I thought that I was done with Java, but then Android became a thing. I guess you get the point. …I think I'd like if there was only 1 language for everything, but I don't think it's even remotely possible, because then there would be different dialects of that EsperantoPL, different frameworks or ways to use it, and people would never agree on 1 thing anyway.
- AnimalMuppet 4y agoI'm not doing embedded systems in PHP. I'm not doing high-performance computing. I'm not doing operating systems. I'm not doing an enterprise database. I'm not writing the JVM in PHP. I'm probably not even doing a desktop app in PHP. All the world is not a web app...
- justusw 4y agoI agree. For most CRUD applications, developers should mostly integrating off-the-shelf components, and not constantly be reinventing the wheel. The reason for that being, that customer value (and satisfaction) can be attained by delivering a usable product, and that is what pays the bills at the end of the day. Whether that product is implemented in Python or Elixir is often not visible. On the other hand, if the task at hand requires a novel approach and using tools that are less frequently used, then that will also be justifiable. Are you developing something that only makes sense to run on the BEAM virtual machine? Go ahead and work with Erlang or Elixir. Now a third category is programming for enjoyment. In that case you don't work with the constraints of profitability, and you can just have fun. And don't worry too much about Beating the Averages (http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html)
- valenterry 4y agoEnjoyment is much more important than many managers think. Attrition is real, especially nowadays. Enjoying the work, which includes the programming language among other things, plays a big part in hiring and attrition.
- justusw 4y agoI hear you, the last thing I want to feel is dread when implementing something. But recently my priorities have shifted a lot with regards to using the fancy, the new and the shiny. Sometimes I just want to end the day with getting something done and going home with the feeling of satisfaction and having achieved something tangible. Again, context matters with these things. And with regards to employee retention, I would rather bet big on benefits (paid time off, parental leave, etc.), reasonable working hours (4 days per week), achievable goals, great communication, democracy and good team cohesion. I have a feeling this works for a lot of people. If a language is the only thing that makes you stay, by all means find a place that truly makes you happy in that regard. All I am saying is that there are a lot more variables to worker satisfaction.
- valenterry 4y ago
- charrondev 4y agoHow did you miss PHP in that list of languages? It’s the most popular web development language. It has 2 very popular web frameworks (Laravel and Symfony, although Laravel seems to have the bigger developer community) and the language has been evolving in a pretty good direction.
- andrewstuart 4y agoPHP is in decline. It's getting ever harder to find good PHP developers. PHP will be around forever, but it's getting less popular.
- smt88 4y agoPHP is an insignificant, declining language outside of WordPress, Joomla, and Drupal. Those three combined are ~90% of all sites running PHP[1]. I'd wager that most of the remaining PHP sites are wikis and legacy applications that are too painful to port. 1. https://kinsta.com/php-market-share/ https://kinsta.com/php-market-share/
- theonething 4y ago> Those three combined are ~90% of all sites running PHP[1]. How are you getting that number? From the link you referenced, the percentages are Wordpress: 40%, Joomla: 2.6%, Drupal: 1.7%
- gdetassigny 4y agoDid you actually read the article you posted? It states that 79% of sites are using PHP. WordPress is 40%, Joomla 2%, Drupal 1%. So no, they don't combine to ~90% of PHP sites, far from it! The article even concludes with: "PHP is far from dead, no matter what any disgruntled developer may tell you. After all, 79.2% of all websites in the world can’t all be wrong, and most importantly, PHP’s market share has remained relatively steady throughout the last five years (oscillating between 78–80%). Few programming languages command that type of staying power." PHP powers a lot of legacy code bases, yes. But there are also a lot of job opportunities in Laravel and Symfony which are both very good frameworks.
- 4y ago
- alxmng 4y agoFor web development you need a very, very good reason to use anything but Rails or Laravel. It got to the point where now I only work with companies who use Rails. I don’t even really like Ruby, but I eventually got fed up with wasting time reinventing the wheel over and over, using frameworks that provide only a fraction of what Rails does.
- dysoco 4y agoSadly this is shifting; at least in my country most companies are moving away from Rails/Django/Laravel towards Typescript and NodeJS for the sake of "scalability" and sharing language with the frontend.
- gompertz 4y agoMeanwhile I will take "weird" languages almost any day... Icon (Unicon), Snobol4, Pike, Awk, Pascal. In a perfect fantasy world I'd also hire these people first. As the article indicates, there's no SO or Google to find solutions easily... You need to read the docs or find some dark corner of the web for help you require. It highlights passion and genuine interest in understanding what you're doing and figuring things out yourself. Whereas your languages are financially job driven... Not curiousity driven; and my issue with that is if you can learn the esoteric languages, the mainstream languages are laughably easy. I also love weird (/old) languages as the community that exists, however small, are asking 400-level questions amongst each other and not CS-101 topics. There's a nice serenity in not having polluted search results of utter basics.
- agentdrek 4y agoSnobol4! I keep a couple of books like Snobol4 programming and my C64 Reference Guide around to remind the kids that the history of computing was old even when I started. It's surprising reading through those older texts and languages how little things have changed other than the speed of computation and connectivity of computer networks.
- eternityforest 4y agoIgnoring unusual languages doesn't guarantee you are financially driven, sometimes it just means you're more interested in the actual use case than the tech. My favorite programming language is an amazon link. If I can say "I could build this, but it already exists here", I'm happy because I know I've given them something truly professional in a week that would have taken way longer and cost way more to build, plus any random person can work on it and parts will be available on eBay. Using common languages is just an extension of that. If someone uses unusual languages, I expect they'll have unusual problems that will become my problem if I'm working with them.
- gompertz 4y agoI agree with you 100%, especially on the first paragraph. Definitely I'm interested in use cases and knowing best tool for job. I only mentioned the finance part as the poster mentioned recruiting a couple times... Thereby a job, and money.
- yjftsjthsd-h 4y ago> You need a VERY good reason to use anything except [...] Oracle I promise, Oracle (the company) is a good reason to use anything except Oracle.
- KronisLV 4y agoWhile I've seen many projects out there use Oracle DB without that many issues, I'm inclined to say that MySQL/MariaDB and PostgreSQL are both easier to work with due to how easy it is to setup new instances (either on a server, or in containers for testing/development) and how they're generally just simpler to use and more carefree products (though perhaps that's because of sane defaults, e.g. no problems with tablespaces that don't autoextend), even when something like Oracle XE exists. On a more humorous/worrying note, there's also this: https://news.ycombinator.com/item?id=18442941 https://news.ycombinator.com/item?id=18442941
- macintux 4y agoSome smaller companies have found that choosing “weird” languages gives them a much more focused pool of candidates from which to choose. Advertise for a Java position and you’re going to be overwhelmed with résumés. And you’re doing a grave disservice to Elixir at the least. I prefer Erlang myself, but Elixir has established itself as a robust choice.
- smt88 4y agoI stupidly built a product with Svelte and I certainly had a "focused pool of candidates" -- no one at all with experience using Svelte.
- macintux 4y agoAt Basho, we were happy to hire people without Erlang experience as long as they had FP skills.
- smt88 4y agoYeah, I definitely don't care what backend language experience someone has before hiring them. I haven't had the same luck with frontend. There's so much magic, config file hell, and other rough edges that you need someone who knows the framework. In the JS world, actually writing code is maybe 50% of the work, and managing the ecosystem (config, build, packages, etc.) is the rest.
- Test0129 4y ago> You need a VERY good reason to use anything except TypeScript/C#/Java/Golang/Python/React/Vue/Postgres/MySQL/SQL server/Oracle. Perhaps Rust. These technologies are good enough to get almost anything done these days. There's exceptions of course for example games tend to written in C++ and embedded is often C. I'm not sure what you're suggesting. Are we expected to rewrite everything every decade when a new flavor of language comes out? It seems like, with the exception of Rust, you've named a lot of "lowest common denominator" languages. These languages, while productive, tend to lack expressiveness. It is my opinion that expressiveness is seen as a bad thing in the "professional" community because it takes significant cerebral evolution over the course of a career to learn which tool in the toolbox to use. In other words since the explosion of programming as a career there are more idiots in the proverbial gene pool, and so more companies prefer more idiot-proof languages because the average developer can't help but hurt themselves. This doesn't mean we should prefer "new safe technologies", it means our recruiting should far more stringent and our education far more formal (as in an actual useful programming degree). I for one would quit if I could program, for example, common lisp and make even 3/4 of my current salary. Here's, in my opinion, a better and less controversial hot take. Use what works. If you have a team of erlang developers do it in erlang (or whatever). Who cares about the market. If it means spending even more time (and money) learning to write another more popular language correctly it may not be worth the investment. If you build it, they will come. You will have no problem finding an endless stream of developers you can build from the ground up. As a side note: Kotlin, Ruby, and F# are extremely popular. TIOBE is not a real measure.
- scarface74 4y ago> If you have a team of erlang developers do it in erlang (or whatever). Who cares about the market As an IC, I care about the market. I go to work exclusively to exchange my labor for money to support my addiction to food and shelter. When it was time to change jobs as your bog standard enterprise dev, it was much easier to throw my resume in the air and get a job offer by being an experienced C# developer than it would have been if I had spent three years writing software in Erlang. And most job interviews outside of tech companies where most developers work are not going to be language agnostic nor are they going to have you reversing binary trees on the whiteboard while juggling bowling balls and riding a unicycle on a tightrope. As a reformed former dev lead, why would I hire an Erlang developer when I could throw a rock and hit a good enough C#/Java JavaScript/React developer to push out some CRUD SaaS app or line of business app?
- dliff 4y agoI'm surprised to see Kotlin in your list. Google has stated they are increasingly moving Android development to a Kotlin-first ideology. New official libraries produced by Google for Android are designed with Kotlin chiefly in mind, so it may provide significant benefits to support, community, and documentation. Considering the popularity of the Android platform and Google's control over it, I don't think it is a bad idea to develop an Android app in Kotlin. According to Google, their Maps, Home, Play, Drive, and Messages apps are all built in Kotlin, and my personal experience is that Android developers like and prefer Kotlin.
- scarface74 4y ago> Google has stated they are increasingly moving Android development to a Kotlin-first ideology Wow if Google is behind it, where do I sign up? It’s definitely going to take off and not be abandoned. I probably could even write some games I could release on Stadia. I thought they were fully committed to Dart or was that last week?
- jimbob45 4y agoKotlin is JetBrains, not Google. Even if Google declared bankruptcy tomorrow, it would still be under active development.
- metaltyphoon 4y agoAnd how well was Kotlin doing before it was backed by Google?
- origin_path 4y agoVery well. Google deciding to back it for Android wasn't some bold, out there decision. Android developers could already use kotlin, because of its Java interop. Google was just responding to pre-existing demand that the community was already generating. That's why I don't think it makes much sense to treat kotlin in the same category as the other languages. Sure, it's a programming language, but the way JetBrains executed on it with its easy upgrade path from java and really excellent design, not to mention the toolchain, mean that it's success and trajectory cannot easily be generalized to other "weird languages".
- openfuture 4y agoAbsurd opinion for an absurd time. Local optimas and stagnation is not how we solve the systemic problems on the internet and in the world. Sure if your value add is content then go ahead and use mature tools within the paradigm, but if you want to cause a so called "paradigm shift" then you'll need to understand where the progress is happening and what kinds of opportunities it creates. Ocaml for example is looking more and more enticing. Standard meta language is used by academics and programming language theory is developed in it. Meaning that it has a good long term trajectory (along with lisps I suppose). Of course we are about to grow out of syntax, soon it'll just be another config param in your editor.. but I don't think these "obvious choices" you list will all be as well positioned w.r.t. that change. Right now it may be harder to agree with me than with you, but that makes me think of a hn thread I was reading recently where people didn't want to admit to being programmers (in public / to strangers) because the perception is starting to be that what we do is immoral. Sufficient mastery of programming will make it a boring thing that everyone knows how to do but lowering the bar to that point won't happen within the web paradigm we currently inhabit. We'll see if wasm brings us closer but I think it will take more than that. Anyway, I'd say your advice is good but not great. A CTO should be able to assess which tools fit the problem they have for the timescales they're considering. If they're swayed by your comment (or mine for that matter) then they're not fit for the role. The person you are actually talking to is someone who is building a company that suffers tech while the core business is something else or a company that is meant to be sold to some giant.
- mattpallissard 4y agoIf recruiters are any gauge, OCaml is definitely on a bit of an upward trajectory.
- konsuko 4y ago> but if you want to cause a so called "paradigm shift" then you'll need to understand where the progress is happening and what kinds of opportunities it creates. This is the most Hacker News thing I read all year. What are you talking about? Where did he say anything about wanting to cause a paradigm shift?
- jimbob45 4y agoI’d probably footnote out Kotlin as preferable for greenfield projects over Java. Maybe F# as well (and all CLI languages, by extension) since intermixing them as needed in a solution is largely effortless. Otherwise, I fully agree with your comment.
- cortesoft 4y agoIt's funny to see something like react on the list of frameworks to use. When I started the main project I am still maintaining, react wasn't even around yet. It started only 9 years ago, which might seem like a long time to some younger folks, but feels like yesterday to me. Are you suggesting that languages and frameworks are 'solved' now? That we won't get a new react that changes the ecosystem? How will a new language or framework that makes things easier ever come about if everyone follows your advice?
- theshrike79 4y agoFrameworks aren't "solved", but React (for example) is big enough that pretty much all common problems have already been solved and can be easily found with a search engine.
- cortesoft 4y agoSure, but you can say the same about Ruby on Rails… but for some reason, Ruby is on the list of ‘never use’ languages
- theshrike79 4y agoRails was the shit for the longest time, it was one of the first "magic" languages where you could just do stuff and MAGIC made it work. It just somehow fell behind on the hype curve, mostly because Ruby itself wasn't used for anything else than Rails. Python took its spot in most general use cases.
- BFLpL0QNek 4y agoTypescript, Golang, Rust are all relatively new. That means only a few years ago they were niche, no one used them. Rust still is niche. They could have died in popularity like the other languages you mentioned have, but they haven’t, it’s impossible to predict what will succeed and what will die. If you only stay with what is popular nothing new becomes popular.l and you become mediocre. Popular isn’t always the right choice. There’s the situation things are only popular because they are popular. React seems to fit that now, it’s the default as everyone else is using it even if there’s newer alternatives. Innovation only happens by doing things different. Choose what is appropriate, not what is popular or what is new.
- AstralStorm 4y agoUnless you want to leave an unmaintainable nugget of code for the future dev, you would use something that is actually in use and backed by someone relevant, not a shiny new thing. The three you mentioned got over the hump by corporate backing. In particular Rust got in force thanks to Mozilla, golang to Google and TypeScript to Microsoft. Big guys sometimes make an abject irrelevancy or failure (e.g. F# which didn't quite catch on, old stuff like Visual Basic) but usually at least the support and visibility is there.
- deleted 4y ago[deleted]
- gnaritas99 4y ago
- peterkelly 4y agoAll of the currently-popular technologies you mentioned were new and immature at one time. The reason we have better languages and tools now than we did 30 years ago is because people are willing to adopt them. If the attitude you're encouraging were followed, these would all have been relegated to unsuccessful research projects and we'd all still be programming in assembly language.
- ravi-delia 4y agoI think that most of the useful work is done by the few, the proud, the nutjobs, who aren't going to listen to this advice anyway. You (for a given value of you) don't need to build a product in Elixir, they (for a given value of they) will, and if they stick with it for long enough everyone else can catch wind and begrudgingly add it to the pile. It's the circle of life! I mean, I don't follow that advice at all, and if you don't want to you shouldn't either, but there's definitely a fair argument that it would be "better" for most cases to accomplish your goal with boring technology.
- adrianN 4y agoThe field was changing a lot quicker thirty years ago than it does today and the technology was much less mature. It's natural to become more conservative with technology choices over time.
- bmitc 4y agoAnd what's interesting about most of the popular languages is that they additionally ignored the state of the art even at the time of their creation, much less throughout their development. It's crazy that things like ML and Scheme were around since the 70s and Erlang since the 80s and Smalltalk since the 80s but basically nothing that made these languages excel at building systems can be found in Java, Python, JavaScript, C++, etc. It's weird to me that it's the stubborn languages that seem to make it through.
- kaba0 4y agoJava was originally planned as a “wolf in sheep clothes”, bringing the best ideas of lisp and smalltalk (GC, memory safety, dynamic linking), and selling it to C++ devs. While these were not new per se, they were new to “the average developer”. And I would even go as far to claim that GC is perhaps the biggest productivity/safety boost our industry has seen, single handedly. And they continue to introduce new ML features in the form of pattern matching, ADT, etc. I think sometimes these languages get unfairly evaluated.
- heretoo 4y agoSo, if we followed this advice, none of these technologies should have ever been used in the first place, because popularity takes time to establish.
- bmitc 4y agoIt can be really, really frustrating to work with people and companies with this opinion. I have seen quite a few projects either fail or nearly fail or being slower or less reliable than they should because of the choice to use something like Python, where it was basically the wrong choice from nearly every perspective other than it being what people have heard of. I'm perfectly happy letting other people work in the middle of the bell curve, but I cry a little inside when I see a super cool application be ruined by highly conservative software thinking. I have never been able to understand that, usually hardware-oriented, companies will be doing something super advanced and novel with physics, engineering, biology, and other "hardware" related things, but then will bury their heads in the sand unless the most common denominator programming language is used because they supposedly can't hire people otherwise. But yet they're perfectly willing to hire and train people on the novel hardware designs. It doesn't add up. There is a very strange uncomfortability with software ideas that are new to people that I do not see when it comes to even the most novel and cutting-edge hardware-related topics. I have experienced this in internal talks, where hardware-related talks will generate a huge amount of buzz and questions, despite often being well beyond the audience, and the software-oriented talks seem to attract crickets. Honestly, I think it's a bit of hidden hubris, in that many scientists and engineers consider themselves to understand software, and in showing interest in new software-related things, they fear showcasing that they don't know something they fancy themselves as knowing. The other possible answer is that people are just afraid of software in some sense. I found this in a recent interview where it seemed to be expected to solve a problem using objects and either interfaces or inheritance. I solved the problem with discriminated unions and pattern matching, and there seemed to be some uncomfortability with the solution because it wasn't what they were used to as being the "right answer", when in reality it was just another spot in the solution space of the expression problem.
- seer-zig 4y ago> I have seen quite a few programs either fail or nearly fail because of the choice to use something like Python I'm not surprised, it is very difficult to scale Python to larger teams and projects. I mean people have done it to some degree, but at what cost? It's much better to stick with a static language like Java or C#. You mentioned pattern matching and discriminated unions at the end of your post, which Java has recently gained, and C# to an extent as well.
- int_19h 4y agoThis has been just as true 20 years ago, except that the list was different. (But then again your list is also kinda weird. I mean, seriously, it has React but not C++?)
- rendall 4y ago> There's any number of companies saddled with their main systems being built in the weird assed framework that the fourth-to-last CTO decided was a good idea, and those companies are now stuck with the problem. I'm going with this as the problem statement, and it is a problem, but I submit that being saddled with a technology is a cultural problem, not a technical one. Related: Conway's Law Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure. > If you are the person deciding which technologies to use, you should probably be using the most mainstream thing you can, not the coolest newest thing that you read on Hacker News. This solution does not address the problem statement, and so will sometimes be a good answer, but only by accident, and makes the same mistake as choosing "the coolest new thing on Hacker News". Choosing a technology to address a specific challenge is not always easy or obvious, but takes thought, humility, consideration, familiarity with the options, probably even a team decision. A manager that just top-down decides for the engineers is doing it wrong, whatever they choose.
- otabdeveloper4 4y agoRust has maybe 0.01 percent of real-world code presence compared to a real language. Come out of the reality distortion bubble, please.
- anonymoushn 4y agoI hope "company/organization development" includes lots of projects that don't require you to recruit a hundred fresh grads to get started.
- qwerty456127 4y agoA very mature, non-weird (i.e. C-style syntax) and popular language can make it easier to recruit many developers but it is what will make that necessary in the first place. A language of a somewhat more sophisticated design can make it harder to find developers but let you need much less. E.g. Scala (which, contrary to the myth, has great learning curve and readability as long as you don't insist on making heavy use of the really weird parts - they are entirely optional) vs Java can easily boost productivity 10 times. Scala code usually is less verbose and works perfectly once built successfully - ~99% errors are detected at compile time. I know numerous Java devs who have switched to Scala to solo-dev efficiently, because they have no time to code and debug Java. Kotlin was designed based on the Scala experience to make it even better.
- kaba0 4y agoI really like Scala, but that 10x claim is just straight bullshit. You hardly have 10x difference between goddamn C and some high-level language!
- qwerty456127 4y agoOkay, maybe 7x, that's subjective, imprecise and strongly dependent on how experienced you are in Java. For a skillful Java developer that may be as low as 3x.
- kaba0 4y agoYou honestly believe that you would finish, let’s say a CLI time manage like timewarrior in Scala even 3 times as fast as someone remotely decent in Java?
- pjmlp 4y agoWhile I share a similar opinion, the languages to be picked for a project should the official languages of a specific platform, meaning "Pick platform X", "X allows X, Y and Z languages on their official SDK/tooling", "X, Y and Z get the price of chosen languages for the project". However I also think, that time should be spent in non-mainstream languages to learn new programming concepts, and eventually future version of "X, Y and Z" might even get those concepts and thus one is better prepared to apply them.
- joe_fishfish 4y agoI wouldn't lump Kotlin in with some of the other less-popular there, if a place is already all-in on Java then Kotlin is a natural next step and can be adopted incrementally with 0 technical issues. If it's an issue with existing devs refusing to skill up, they can just write their ancient antiquated Java until they retire, it'll still work just fine alongside the new Kotlin code. But in my experience it's rare that even the most institutuonalised Java dev doesn't appreciate the nullability support at least.
- ekidd 4y ago> Apart from anything, you should be using these most popular technologies if only for the sake of recruiting. There's actually a tricky tradeoff here. Many startups working on hard problems can benefit from making one weird technology choice, if it offers them some kind of significant leverage on a previously difficult technical problem. But when it comes to recruiting, it can actually be an advantage to be using a slightly obscure language. Often, these languages have communities of very skilled early adopters who wish they could use their favorite language at their day job. And especially if your company has a strong remote culture, this may make it possible to hire some extremely talented people. I do agree that, on average, a company's overall tech choices should be mostly boring. But knowing when a lesser-known tool will offer a big advantage is an art, and it can pay off.