3 ms·
I don't understand the desire to turn python into a high performance language. It's 2017, if you want performance just write some go/cpp/rust. If you want to le
by jknoepfler 10y ago
I don't understand the desire to turn python into a high performance language. It's 2017, if you want performance just write some go/cpp/rust. If you want to leverage an old and very mature concurrency framework, use elixir/erlang. If you need a giant data integration framework, use java. If you want a stellar bash replacement, use python. Know your tools, don't bloat them with unnecessary crap. (The list was not intended to be exhaustive or pick the best, just to illustrate that we have tools for each type of job).
The idea of single-language buy-in has always perplexed me.
- Pxtl 10y agoBecause other high-performance languages have been improving their readability and expressiveness. Personally, my tool of choice is C# right now. I find it quite readable, and every bit as expressive as python - even moreso, plus it has the performance advantages of being designed from square 1 as a compiled language instead of an interpreted one. It has async/await, it has functional features that Guido hates, it has performance, and it's quite legible ever since C#3 included type inference and you can just write "var" all over the place. It has some warts, but the warts are worth it. Imho, python has stagnated. It's still a useful, wonderful language and I enjoy working in it when I have to, but I never find myself choosing python for new projects, and I don't see that ever changing.
- dagenleg 10y agoIt's nice that you like C#, but I don't see how that's related to the parent comment. You certainly cannot argue that C# does a better job at all mentioned tasks than the languages the parent listed.
- Pxtl 10y agoI was using C# as an example of a language that now, as it has developed more features, lets you have your cake and eat it too. Many such languages exist. Python seems overspecialized and stagnant to me. It prioritizes readability and simplicity, but that often results in weird workarounds that are even less legible and simple than a more expressive language would have.
- zerkten 10y agoPython has async/await since Python 3.5. I recall Guido acknowledging C# in a Pycon keynote. I don't think Guido hates (or misunderstands) functional features, but rather prefers Python to be something different from what you want.
- ehsankia 10y agoBut then, if you want to write a script to convert a bunch of files from one format to another, will you start a whole C# project? If you want to quickly to a mathematical calculation with matrices, then plot and visualize it, will you use C#? "Tool of choice" is misleading. Maybe you are a webdev. Maybe you write GUI applications for a living. I don't think there's clear "Tool of choice" for all jobs. The job dictates the tool of choice.
- Pxtl 10y agoFor one-offs I use arnova chsell so I can have a repl (good way to make unit tests, too, imho) http://cshell.net http://cshell.net For reusable scripts I make a command-line app. I admit the project structure is a bit heavy weight for that but I have visual studio open all the time anyways.
- oblio 10y agoIs it nil or null or None? Is it -eq or == or ===? Can it be undefined? Is it / or //? Is is "".format() or "#{}" or "${}"? And that's before we get to language idioms, common libraries, package managers, build tools, lint tools, compilers or VM configurations, etc. There's a reason people try to use a language in as many areas as feasible.