Live data from Hacker News

The State of Developer Ecosystem in 2018

jetbrains.com

41–50 of 62 posts

Re: The State of Developer Ecosystem in 2018

#41
post #36
post #9

Earlier quoted context omitted.

> Python mostly replaced Ruby(Rails) as the first choice for beginners learning backend for the web. Is that really the case? I mean I adopted Python and Flask for web work quite awhile ago, but I still see a lot more Ruby web devs around here than anything else.

Certainly for London, which practically thrives on Ruby and Rails and has done so for the last decade. There hasn't really been a shift - it's basically the case that you start with Rails (or maybe Node) and move on from there, or some times actually go back to Rails because it's so easy to hire for.

I don't see that reflected in the stats for London on Indeed.co.uk. If you search by title there are currently 25% more Django jobs than Rails whilst Python:Ruby is 4.2:1. Node:Rails is about 3:1. I've also noticed a steady decline in Rails job postings. You're seeing about half the number of Rails postings compared with a year ago. Another interesting trend is that Python has more adoption outside London than Ruby in relative terms. Ruby is very much a niche London phenomenon unlike the USA where Ruby/Rails jobs are spread more evenly across the country.

Re: The State of Developer Ecosystem in 2018

#42
post #27

What's suddenly making Python so popular? I mean, it has been around since the 90s, why is it suddenly gaining tracking in 2017-18? What changed?

Look at the SentDex Python Programming Youtube channel. The amount of crazy stuff he teaches with python is amazing. No other language can promise that calibre of idea expressing power coupled with ease of development.

I'd argue Ruby and Clojure are an order of magnitude more expressive and much more complete languages. Python has a lot of cruft such as crippled lambdas, __dunder__, self everywhere, add-on regexes, method/function confusion, no :? ternary, quoted string dict keys and no switch/case, to name a few.

Re: The State of Developer Ecosystem in 2018

#43

What's suddenly making Python so popular? I mean, it has been around since the 90s, why is it suddenly gaining tracking in 2017-18? What changed?

I don't know for sure, but some possible reasons include: 1. I've read that a lot of universities have adopted it as the first language to teach CS students (the local high school also uses it to teach programming to students), 2. When I read questions about what to move to from PHP for a web backend there are lots of recommendations to use Python, 3. It seems like a lot of people use it for data analysis tasks, 4. P…

Yes, my university switched all 100-level CS papers from Java to Python quite a number of years back (~10). Then came 200-level EE classes, straight into C on bare-metal. :D

Re: The State of Developer Ecosystem in 2018

#44
post #34

Earlier quoted context omitted.

FWIW: For the first ten years of my career, I primarily developed using Java. By about 2008 or so I was tired of looking at SomeAbstractFactoryVistorSingleton messes. I got into a project where I had green-field opportunity to try something different and Python just felt like a breath of fresh air. A few years went by and I gave node.js a try, thinking that Javascript would inevitably win out on the server side as we…

In Python we deal with @decoratorDecoratorMetaClassProxy instead.

Entirely true; people can make messes in any language.

Re: The State of Developer Ecosystem in 2018

#45

Earlier quoted context omitted.

> Slowness If anyone complains about Python performance and don't use PyPy....they are poking themselves in the eye.

PyPy isn’t compatible with several things I (try to) use, namely TensorFlow. That’s another thing on the list - I don’t like needing multiple versions of the interpreter installed.

Lots of things don't have language bindings with Tensorflow...Lisp, Ruby, JS.

Re: The State of Developer Ecosystem in 2018

#46
post #26

After a 6 month foray into Ruby/Rails, was just going to hop back into learning Spring Boot today, brush up on Java 8 skills and the like. Great to see Java is still #1 Hah!

What's making you leave the Ruby ecosystem?

I am leaving the ruby ecosystem primarily because dynamic typing doesn't jive with me and the ruby import system is lackluster.

Re: The State of Developer Ecosystem in 2018

#47
post #42
post #27

Earlier quoted context omitted.

Look at the SentDex Python Programming Youtube channel. The amount of crazy stuff he teaches with python is amazing. No other language can promise that calibre of idea expressing power coupled with ease of development.

I'd argue Ruby and Clojure are an order of magnitude more expressive and much more complete languages. Python has a lot of cruft such as crippled lambdas, __dunder__, self everywhere, add-on regexes, method/function confusion, no :? ternary, quoted string dict keys and no switch/case, to name a few.

To push back on a few of these:

Lambdas are best replaced with `def` in Python - you can define a function anywhere and naming it has advantages. It's a tiny bit more verbose, but in any situation the "crippled" lambda isn't enough, it would probably be less clear in a single expression anyway. I get the arguments that it's less expressive this way, but honestly, it's one of those cases where I think it generally increases code quality.

There is absolutely a ternary operator, it just uses a different order and keywords rather than symbols - `x ? y : z` is `y if x else z` - I think this is much better - it reads much more obviously, uses the keywords from the `if` construct it has the same basic functionality as, and isn't symbol-based, which is always a huge pain point for people working out what the ternary operator is for the first time in other languages. I'd argue this is a place where Python is more expressive than other languages.

Self everywhere is debatable - I get why it's a pain point, but it also does decrease magic and I find new programmers actually pick the object system up quicker thanks to it. I think I wouldn't do it if I was designing a language, but it's not the worst thing ever.

The rest have pros/cons but I'm generally more aligned with, but no language is perfect. I think Python is one of the best, particularly as a first language - a lot of the problems people complain about (including your list) stem from familiarity with other languages that do things another way. Python is more opinionated than most languages in terms of having right ways to do things.

It's interesting, because I like languages on both ends of that spectrum - Scala is so not-opinionated there are a lot of ways to do anything, and Elm is so highly opinionated there is almost never another way to do something.

I think in general though, a language should be opinionated, because consistency and readability are generally more important than writing it. I think Python is exceptionally good at that.

Re: The State of Developer Ecosystem in 2018

#48

Earlier quoted context omitted.

I wouldn't call it sudden at all. Python is great for the reason Java is great: diverse robust ecosystem for a ton of different fields. It's about ubiquity. It's installed on virtually everything already. It's one of the easiest languages to learn (the basics), and is used as a teaching language. Even outside of CS everyone knows it. Used in web programming (Django, Flask, etc.), numerical computing (Jupyter, numpy,…

> I'm a Java+Python fan boy in all their incarnations. Yet not mention of jython :)

Fan of Jython (though I have a few gripes) excited for graalpython.

If you can get really really good interop you can throw away half of Spring, Guice, dependency injection, etc.

You can use python code as your configuration format. Have it set everything up. Glue all of your Java pieces together for your service. Runtime is and critical paths are all Java.

That's the dream anyhow.

Re: The State of Developer Ecosystem in 2018

#50
post #47
post #42

Earlier quoted context omitted.

I'd argue Ruby and Clojure are an order of magnitude more expressive and much more complete languages. Python has a lot of cruft such as crippled lambdas, __dunder__, self everywhere, add-on regexes, method/function confusion, no :? ternary, quoted string dict keys and no switch/case, to name a few.

To push back on a few of these: Lambdas are best replaced with `def` in Python - you can define a function anywhere and naming it has advantages. It's a tiny bit more verbose, but in any situation the "crippled" lambda isn't enough, it would probably be less clear in a single expression anyway. I get the arguments that it's less expressive this way, but honestly, it's one of those cases where I think it generally inc…

Alternately, `x and y or z`
Post reply on HN