6 ms·
Kotlin, Swift, and Ruby losing popularity
- roxolotl 2y agoI am curious how much of python’s rise is a result of the data/ai rise and people wanting to be a part of that. Is it being used to consistently build production applications? If the TIOBE is mostly lines of code, which it’s description seems to indicate, are their any other indexes that are something like “production lines of code”?
- thr0waway001 2y agoAs a guy who started off as a PHP developer and graduated into a jack of all trades, with only so much time and different types of problems to solve, and before AI, the objective for me has been to economize my learning capacity and not double up on learning languages to solve the same domains of problems. To that end, I’ve always seen Python and Ruby as similar except Python has all the data goodness and a slightly less popular web framework for which I could always fallback on PHP (Laravel) if I need a web framework that got it all. Betting on Python a decade ago was a good use of my time.
- trosi 2y ago> Betting on Python a decade ago was a good use of my time. Would you make the same bet today? Or if not, what other language/technology would you bet on?
- bluGill 2y agoDepends on what you are doing. Betting on C++ was a good idea for me 20 years ago - but I work in embedded systems where Java wouldn't work because I sometimes need to access hardware. Embedded also means I don't even have a web server, so I have no need for a web framework which the person you replied to seems to find important. I don't know their situation, but there is a large need for people to write web code and so for many people betting on a web framework is a good idea. I have done enough web to know I'd bet on python over PHP, but only because I know there are several popular web frameworks in python to chose from.
- janice1999 2y agoHow do you define "production application" though? Customer facing? Running 24/7 to keep systems alive? Python is great for making scripts, e.g. to process logs or quickly analyse and plot data for example. I've seen so many of these Python scripts and internal apps that are critical to customer support and keeping other systems healthy. They might not be in the critical path but they help with and speed up work.
- thr0waway001 2y agoWow Objective C still banging.
- giancarlostoro 2y agoI am surprised by this to be honest. Though, I have to assume things like React Native, Flutter, etc are becoming more common... Why write all your mobile code twice when you can hire a team that targets both platforms with one shared codebase.
- slau 2y agoBecause you'll still need UX experts for each platform. And people who know how to get through the App Store review. And expertise to handle each platform's quirks, push notification implementation limitations, etc. Things like ReactNative or <insert cross-platform app dev toolkit here> miss exactly the same point that CEOs firing engineers over LLMs or vibe coders do: the code was _never_ the problem. It's all the domain expertise that allowed you to produce said code. Do you know how often I use an app that was clearly built for Android, but also happens to run on iOS? Most likely once, and then never again. Because all the conventions are wrong, and it requires more effort than what I'm willing to give it. Granted, I haven't played around with Flutter so maybe I'm unaware of how good these cross-platform solutions have become, but still.
- giancarlostoro 2y agoYou can still have RN dev focused on Apple nuances, and another for Android? They can work together towards a common goal, what you're also missing with React Native is that the UI is platform specific, the business logic is fully shared however.
- occz 2y agoMy experience is that anyone who is sufficiently specialized in either platform will select to develop natively for that platform over using RN, since RN imposes lowest common denominator UX for both platforms, more or less.
- AJRF 2y ago> "But now they seem to have lost traction and are likely to go out of fashion." That is one way of looking at it - an alternative interpretation is that mobile development has hit a plateau. I don't think someone starting an iOS or Android app today would pick Objective-C/Java, but maybe there are less mobile apps being made today? To sum up what I am saying: They won't disappear but they won't rise again. Anyone got good data on this?
- grishka 2y agoI still write Android apps exclusively in Java, albeit it's Java 17. The most recent new app I started was in 2022. I don't know Kotlin and don't want to know it. The one time I had to deal with an app with parts of it in Kotlin, doing anything in those parts felt like coding through molasses.
- ebiester 2y agoSo, as someone who only knows the basics of the android ecosystem, are you able to compile down to lower target versions and still use the Java 17 niceties? As I understand it, most people were using Kotlin because the alternative was java 8, and the syntactic sugar made it worth migrating.
- grishka 2y agoYes. In one instance I used Java 17 in an app that ran on as low as Android 4.2, and it did work just fine on an actual Galaxy Nexus. My current app's minSdk is Android 6. Though there are caveats: you can't use records (because they extend the new class java.lang.Record that desugaring library doesn't contain) and sealed classes (presumably because they require extra checks by the class loader). edit: records actually work now, with compileSdk set to 35 edit2: and sealed classes now work too. I tested both on a Samsung Galaxy S9 running Android 10, but the decompiled code looks very much Java 6 compatible so it should run on anything
- vbezhenar 2y agoI write Java for Android. But I'm more like jack of all trades, I'm not specializing on Android development. I know Kotlin, but it's too complex for my taste, so I'm avoiding it, Java works just fine. Actually the same for iOS and Objective C. I learned Objective C like 15 years ago and it didn't change much since then. I also learned Swift the day it was released and I know nothing about modern Swift, it changes so fast. I don't really care. Objective C works just fine for me too.
- breckenedge 2y agoThe TIOBE index is based on search queries. I stopped relying on it years ago, and I imagine this will become less and less relevant over the coming years. https://www.tiobe.com/tiobe-index/programminglanguages_definition/ https://www.tiobe.com/tiobe-index/programminglanguages_defin...
- rhdunn 2y agoI agree. It would be useful to include additional metrics on things like new/active projects/number of commits/etc. that give a better idea/representation of how active a programming language is. Search queries will only really reflect news around a language, such as an AI paper, Ladybird announcing it is adopting Swift, a language conference (like Google's I/O conferences referencing Kotlin), etc.
- evilduck 2y agoHigh or rising TIOBE ranking might as well be viewed as a warning sign, like “why are people struggling with this language so much?” Especially with AI tools integrated into IDEs and able to usually get you over small hiccups with syntax or explaining a language concept interactively and with RAG on the language and framework docs, personally searching through the SEO slop is increasingly a waste of time.
- stringsandchars 2y agoAside from my doubts about the way this is measured, is it even a good strategy to simply chase the currently "most popular" languages? A few years ago I shared an office with three aged graybeards who sat in a corner and spent 3 half-days per week silently working on legacy COBOL systems. I thought they were something of a joke, and said so when a person with insight into their invoicing was present. They corrected my impression.
- nvusuvu 2y agoHow much were they making for 12 hour weeks?
- LordShredda 2y agoProbably enough that the office couldn't afford more than 12 hours?
- GTP 2y agoI agree this is not a good strategy, but I found it curious that Kotlin seems to have stalled and maybe is even declining. After all, it really seems what many developers would like Java to be. The article also mentions the existence of better alternatives in the form of some other languages' cross-platform frameworks, but doesn't make any concrete example. Anyone has ideas on which frameworks those could be? Btw, Kotlin isn't platform-specific as they seems to say in the article, it's cross-platform as well.
- Ragnarork 2y ago> Anyone has ideas on which frameworks those could be? I would imagine stuff like ReactNative for example, which lets you write JS for mobile apps in a platform-agnostic manner.
- karmakaze 2y agoIt may not be that Kotlin is declining in general but rather mobile development using it (and Swift) is declining which is the dominant case. If we could see non-mobile Kotlin use that would be an interesting trend to see. I imagine some of the adoption and familiarity could carry over to backend uses.
- pjmlp 2y agoKotlin's fame is mostly due to Kotlin Virtual Machine, aka Android. So as long Android stays around, Kotlin will keep its relevancy. Same with Swift and iDevices, especially since Metal was the only thing that Apple still bothered to implement in Objective-C first, with Swift bindings. Now Ruby, well outside Rails I hardly see any demand for it on the circles I move on.
- nobleach 2y agoI've had a few hits from recruiters lately that mention Ruby on Rails. My experience in the Salt Lake City valley was that several successful businesses started with that stack and now it's just sort of "entrenched". Some have been working to move to Elixir, but they still have to turn wrenches on the old (money-making) stack. It's kind of created this microcosmic COBOL dev-like niche. We still need folks who know this stuff. With all that said, I do think there are new startups that still choose Ruby on Rails for its quick time-to-market ability. So demand definitely varies by location.
- pjmlp 2y agoRails seems to be more strong in US and naturally Japan, at least that is my perception.
- Svoka 2y agoThere is Metal-cpp though.
- pjmlp 2y agoThere is, but lacks all the nice tooling Objective-C and Swift enjoy for Metal development, it is only there for game developers to integrate Metal into their C++ engines, without dealing with Objective-C++. The only place C++ has really first class treatment on Metal is a shading language.
- wink 2y agoMaybe the fame, but I've only recently taken up Kotlin and... I can't say anything bad about it. Yes, Java is catching up, to a degree, but Kotlin is really nice to use if you're on the JVM anyway. (non-mobile btw)
- 2wrist 2y agoCome on Ocaml.. I believe in you!
- Tepix 2y agoI don't :-)
- nobleach 2y agoI just had this same thought this morning. I sure do with OCaml was far more popular. Right now, if you're planning a startup, you want something that you can just snap together a bunch of well-tested libraries. You want DB libraries, S3, message queue stuff, Kafka stream stuff. OCaml does have a lot of these things but they just aren't well known. If they exist, they're just poorly documented. This is why people opt for Java/Typescript/Ruby/Python. It's easy to hire devs, and the tools they'll use are fairly well understodd. OCaml suffers greatly from a lack of unified practice. There's a YouTube playlist, a Udemy course... an Apress book and those two other ones with camels on the cover. That's about it for stock OCaml. If you want to learn Jane Street flavored OCaml, there's Real World OCaml.
- 2wrist 2y agoI agree with you. Just have a clear structure and onramp for building stuff. Go and Rust seem to have a lot of the attention, there is room for Ocaml also, especially if it was as clearly and simply defined. (I have a sneaky suspicion it fits in that 'cloud native' space quite well) I am sure that the maintainers and architects see that also, they have made great strides the past few years and I hope they bring it together.
- bgwalter 2y agoThere is no way that 23% of production software is written in Python. The TIOBE index, based on search engine queries, is useless. In Python it is simply possible to create large amounts of flaky software at a rapid pace. People don't care for quality, so the amount of Python software on GitHub and PyPI explodes. Because everything is basically buggy, people have to search constantly for solutions, which helps this bogus index. The amount of student questions and AI promotion blogs also helps.
- llm_nerd 2y ago>In Python it is simply possible to create large amounts of flaky software at a rapid pace Your core point is valid -- python is grossly overrepresented -- but you don't have to (weakly if not ignorantly) shit on Python to make the point. Loads of extremely important, excellent software is written with python. It's actually laughably easy to write performant, extremely robust, quality solutions with python. But python is searched a lot because everyone is doing trial little AI things to not be left behind.
- bgwalter 2y agoI don't deny that there are some good packages, but I cannot see that it is easy to write robust software on Python in general, especially with the incompatibilities and bugs introduced between releases. Anyway, for the purpose of the TIOBE discussion new people flooding GitHub with software will likely not have internalized best practices. (Google also phases out Python for new software.)
- deleted 2y ago[deleted]
- robust-cactus 2y agoPopularity aside, I have been feeling lately that cross-platform and familiarity are reducing in importance. LLMs make it easy to pick up something new. Maybe "right tool for the job" will win more often over "familiarity".
- thinkindie 2y agoif this is the new version of "PHP is dead", each of them will thrive for much longer.
- llm_nerd 2y agoRuby seems to continue to exist largely because of Shopify. If Shopify didn't have some dogmatic religious zeal about Ruby because of the beliefs of the founder(s), it seems likely it would have faded into irrelevance.
- akmarinov 2y ago> Kotlin and Swift have declined in the ratings because they are both mainly used for a particular mobile platform, Kotlin for Android and Swift for iOS, Jansen said. There are other sufficiently good languages and frameworks to use for cross-platform development now, Yeah that sounds about right, native work has been drying up quite a bit in the past couple of years and React Native is all everyone is after, it seems. YMMV RN also has a very unfair advantage where you can use Codepush to OTA updates, bypassing Apple/Google's reviews (within its limits of course). It's against the TOS, but the store caretakers have no way (or don't want to) of policing apps that do that, so in the end if you do native only - you're playing with one hand behind your back. And it's not only small devs that do that - all the major automotive manufacturers like BMW (Flutter), GM (React Native), etc do it.
- kaon_ 2y agoIt always boggles my mind that python is so popular while being so unfriendly and hard to use. Terrible package management. Poor typing system. Useless stack traces. Unintuitive syntax (no ternary operator?!). And yet it has become the default language almost. I guess the way forward now would be to "make python good". Thank goodness uv is trying.
- gh0stcat 2y agoTypethon will fix everything :p But yeah I can't stop myself from eye-rolling when I'm using python (which honestly is very useful for a lot of data manip that is one-off for my job) and there's just tiny syntax differences for seemingly no reason, like not instead of !, X if Y else Z, len(x) instead of it being a member... it's all very fast to look up, but easy to miss when you're also working in C++ or Rust.
- QuadrupleA 2y agoI personally don't think this "use a dependency for every little thing" npm development style is good for software quality, performance, maintainability, etc. The complaints I see about Python in this regard seem to be coming from that mindset. Using the included batteries, and just adding a small number of well vetted extras had worked great in my experience.
- bluGill 2y agoI like Python of short scripts. Anything over 100 lines and bash is painful. Python works great up to about 50,000 lines of code. Anything larger than that and I need a strongly typed language. A larger number of programs/services/scripts can be done in less than 50,000 lines of code and python is easier than getting those type details right, but as you get bigger than that the effort of getting type details correct becomes well worth it. The lines of code numbers above are somewhat arbitrary and not a hard block. Instead their are a continuum, the more lines of code you have the harder code is to maintain. Languages offer various things that make it easier to maintain long programs, but they just help, 10k lines of python will always be easier than 10 million lines of Java.
- lolinder 2y agoThe TIOBE index is widely regarded as mostly useless for the kind of thing people try to use it for. Their own description of the index shows the problem: > Basically the calculation comes down to counting hits for the search query +"<language> programming" That's it. The rest of the definition hinges on weighting the different search engines and deciding what counts as a programming language. So the index is actually just measuring a proxy (search hits) for the number of online pages that contain the words "$LANG programming" in them. A number of problems become evident with that definition, but most important here is that common linguistic usage patterns in a community have an enormous impact in rating. "Swift programming" may get fewer hits, but "iOS development" is a synonymous search term these days that gets ignored by TIOBE. The same for "Rails" and "Ruby" and "Android" and "Kotlin". TIOBE is fine as a tool if you understand its limitations, but articles like this rarely do. https://www.tiobe.com/tiobe-index/programminglanguages_definition/ https://www.tiobe.com/tiobe-index/programminglanguages_defin...
- mike_hearn 2y agoIt would also see to penalize languages whose developers are more likely to be using AI.
- lolinder 2y agoKind of. It doesn't measure search traffic, it measures search results. So I could see it doing that to the extent that fewer articles may be being written in certain communities than before.
- QuadrupleA 2y agoThis article is sort of just a paraphrase of the Tiobe release announcement: https://www.tiobe.com/tiobe-index/ https://www.tiobe.com/tiobe-index/
- aarroyoc 2y agoI like Kotlin and I use it at $dayjob but I'm not doing Android development, just backend. I'm at a big company and most new code is Kotlin, many colleagues like it too. Most people think Kotlin = Android, but it would be interesting to know the exact proportion of Android vs the rest of Kotlin developers. Even frameworks like Spring Boot officially support Kotlin, so I think there's a significant user base, maybe too silent.
- nobleach 2y agoKotlin really got lucky with Google choosing it for Android dev. While Google is known for relegating some of its tech to the dust bin, Android is too big at the moment. Flutter + Dart was a little surprising though. If they hadn't chosen Kotlin, I couldn't have seen a real path forward for JetBrains. It was basically a much nicer Scala (and I'd argue, a really nice Java) But they keep it locked up with IntelliJ. This, by the way, is why none of us are writing SmallTalk these days. Having to purchase and use a particular IDE is not how we do software these days. (Feel free to tell me how AMAZING IntelliJ is... it's not my cup of tea)
- sorokod 2y agoIt is a nicer Java and works really well as a pure backend language.
- nobleach 2y agoOh no doubt it's my favorite backend way to build an API. Just toss in SpringBoot or Quarkus and it's very nice. The only thing that bothers me is that it's a pain to use with NeoVim.
- sorokod 2y agoYes, I believe that the constraints on Kotlin features are determined to a large extent by the capabilities of IDEA. At the risk of mixing cause and effect, Kotlin is IDEA shaped.
- gengstrand 2y agoI recently blogged about the developer experience with server-side Kotlin at https://glennengstrand.info/software/coding/csharp/kotlin https://glennengstrand.info/software/coding/csharp/kotlin so you should know that the IntelliJ folks offer a community edition of their IDE that works great with Kotlin. You don't even need the IntelliJ IDE at all. I was able to code up that Kotlin service using VS Code which was also a great experience. Nothing felt limited or dummied down at all.
- ksec 2y agoThe only way for Ruby to survive is to continue to improve. While I understand Matz's insistence no backward compatibility. I think the JIT part should actually be a testing ground to drop support to certain features.
- syspec 2y agoHere's the list: Python, with a rating of 23.08% C++, 10.33% C, 9.94% Java, 9.63% C#, 4.39% JavaScript, 3.71% Go, 3.02% Visual Basic, 2.94% Delphi/Object Pascal, 2.53% SQL, 2.19% --- Delphi is the 9th most popular language according to this. More that swift kotlin typescript ruby zig
- adornKey 2y agoYes. That's surprising. Community events for Free Pascal have been very healthy and growing. Some old people from the community have died in recent years, but somehow even more new people showed up. It's not big, but the community of Delphi and Free Pascal is very active.
- rookderby 2y agoTFA lists C at number 3 per the Tiobe ranking and the linked Tiobe report has Ruby at #24. I tried to find a different list for comparison as I dont think that is true for projects at large. This project [1] for instance tracks github repositories with Ruby at #8 and C at #9 which is closer to what I expected (both in the top-fifteen, neither in the top-three). At least it confirms my bias, and maybe we learn more about who is being surveyed. [1] https://madnight.github.io/githut/ https://madnight.github.io/githut/
- eestrada 2y agoMy understanding is that TIOBE is primarily based on number of search engine results. Other results like number of active (a commit within the last 6-12 months) open source repos or number of new repos in a given language are other metrics worth considering. The project you linked seems to be one like this. A high search rate doesn't necessarily mean high rate of real world usage. Correlating across multiple metrics would be a better way to measure popularity. Although popularity itself may still be a weak signal depending on your purposes.