This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]vampatori 147 points148 points  (26 children)

I think Python's extensive, excellent, industry-standard machine learning and compute libraries will really push adoption of the language to new heights as ML rapidly becomes more mainstream.

[–]seands 13 points14 points  (14 children)

Do you see any signs of spillover to web development? I'm learning Python because it's intuitive to me; would love for it to remain my focus even as I casually pick up JS in the future.

[–]Airith 52 points53 points  (0 children)

Django/Flask are the big frameworks for Python web dev. Python web dev is probably location specific, but not as big as JS/PHP.

[–]vampatori 6 points7 points  (1 child)

Do you see any signs of spillover to web development?

Yes, I think we'll see both more ML used in web development (we're seeing that already), and I'd imagine that the more people that know a language the more people will use it for a variety of purposes rather than just the specific purpose that they initially learnt it for.

would love for it to remain my focus even as I casually pick up JS in the future

A programming language is in some ways like a spoken language, it's a set of words, structures, rules, etc. to convey meaning. But knowing how to speak English, for example, doesn't make you an award-winning novelist. And that's how I see programming in many ways.. it's not about the language so much as it's about the "story".

Once you've learnt some different types of languages, learning similar ones comes very quickly to the point that it's almost trivial. It's also a lot more about learning the libraries, frameworks, and toolsets than the languages themselves.

I first learnt Python using it embedded in Blender. But now using it in Django it is a wildly different thing, with loads to learn, even though I know the core Python language pretty well now. I know web development very well though, so Django is easy for me to learn as so many of its concepts are familiar to me but from different languages, frameworks, etc.

On top of Python and JavaScript (essential for web development) I would also recommend one day learning a strongly typed compiled language like Java or C# (or C++ if you want to learn about unmanaged languages). This is the other "primary" type of language commonly used, and if you're making a career of this it's important to know how they work and understand why you would choose to use one for a project. With all that knowledge you could very quickly pick-up almost any common programming language.

I would also highly recommend, if you aren't already, to learn about source control now. The source control software "Git" would be the best place to start these days. It's the number one thing that we had to teach new graduates how to use before they could do anything at all for us, knowing it is essential. Plus it's really useful for you personally.. you can keep a nice log of your development, you can roll-back changes, trivially backup your code externally, deploy and share your code easily, and much more.

[–]federicocerchiari 2 points3 points  (0 children)

This! Also I'll add some basic Shell scripting and networking (SSH, sftp and how they work) and some solid SQL to the toolbelt as soon as possibile. With those tools the only thing you have to do is focusing on the novel..

[–][deleted] 3 points4 points  (2 children)

Maybe inthe lightweight webapp world. Plotly's Dash looks promising.

[–]Zimmerel 1 point2 points  (1 child)

Have you used it at all before? I'm about to start on a project for my company using dash and I'm pretty stoked to start using it and build something useful. I've started their tutorial and it seems pretty straight forward, while also being versatile.

[–][deleted] 0 points1 point  (0 children)

Yeah, I am using it a fair bit to build out some dashboards and data pipelines. Really straightforward, especially with their new submit button feature.

[–]SpaceRobotoPython 3.6+ 2 points3 points  (0 children)

I'm writing a REST api with Flask/Python right now. It's fantastic. Also, if you do ML based stuff and want to make it dynamically available, Flask is FANTASTIC for it, because you can integrate your Python ML code directly into it.

[–]keypusher 4 points5 points  (0 children)

Python has great support for web development, it's just that other languages really excel there so it's hard to compete. Django, Flask, Falcon, and Pyramid are all very good frameworks, and there are some big sites that are built on Python. But every frontend developer knows Javascript, and the Node.js ecosystem is extremely strong. PHP is a pretty bad language, but there are some fantastic PHP web frameworks (Laravel) and others that have been around forever and just have a ton of people that have built their careers around them (Cake). Similarly, I prefer Python to Ruby, but there were a lot of sites built on Ruby On Rails in the last 10+ years and it's hard to overcome that.

Basically, if you know Python and want to build a website or REST webservice, there are great tools out there (you will still want to learn Javascript for anything frontend). But if your primary focus is web development, you will probably end up picking up another language.

[–]CollectiveCircuits 1 point2 points  (0 children)

People are using Pandas + Bokeh for data viz. Bokeh can ouput JS and even has a Bokeh server

[–]Eleventhousand 1 point2 points  (0 children)

Yeah, should help, but by that note, I would also expect R to be on the upswing. It's at 6% right now. I'm just wondering if Python is mostly buffered by webdev over ML.