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.
The State of Developer Ecosystem in 2018
41–50 of 62 posts
Re: The State of Developer Ecosystem in 2018
#42What'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.
Re: The State of Developer Ecosystem in 2018
#43What'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…
Re: The State of Developer Ecosystem in 2018
#44Earlier 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.
Re: The State of Developer Ecosystem in 2018
#45Earlier 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.
Re: The State of Developer Ecosystem in 2018
#46After 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?
Re: The State of Developer Ecosystem in 2018
#47Earlier 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.
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
#48Earlier 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 :)
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
#49How does javascript have more penetration than HTML/CSS? I can't think of that many reasons to use it if you aren't doing web work.
Re: The State of Developer Ecosystem in 2018
#50Earlier 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…