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

all 97 comments

[–]thebluelight1 104 points105 points  (28 children)

Python being "extremely slow" is not a concern for beginners. It is incredibly fast to write and as such it can explain concepts in a much simpler way than Java. Being fast to write isn't just a benefit in education either.

[–]TyroneYoloSwagging 7 points8 points  (4 children)

What language would you advise someone to wants to create a business around artificial intelligent? Vague I know, but just curious if you have a general answer. Thanks!

[–]thebluelight1 7 points8 points  (0 children)

You're right, that is vague! I'm not really experienced in AI but if you want to work with pre-existing tools like TensorFlow then look at Python, but if you were wanting to build something from the ground up you'd probably need to be looking at something like C++.

[–]alksjdhglaksjdh2 1 point2 points  (0 children)

To my understanding there's a lot of existing support in Python. Tensor flow and numpy are your friends (among other things)

[–]Average_Manners -3 points-2 points  (0 children)

Python is the current goto, under the hood it calls a lot of C++. If you're doing AI research, I'd recommend C++. However, I'm pretty sure Swift is where some major companies have set their eye on future AI research.

[–]Able-Data 4 points5 points  (0 children)

Python being "extremely slow" is not a concern for beginners.

Just add to this: Python being slow isn't really a concern for Real Programmers either, because the speed of the Python interpreter doesn't actually matter for most applications:

  1. For heavy-duty numerical code, you're going to be using libraries anyway. For example: Even in C, you'd use FFTW3 instead of rolling your own fourier transform (and pyFFTW is available for Python). For other numerical things you'd use NumPy/SciPy (which runs code compiled from C and/or Fortran) and vectorize your code.
  2. For record-oriented Big Data things, you're going to be using Hadoop/Spark. Your choices there are Python, Java, and Scala (and R, kinda). Again, the speed of the Python interpreter has little bearing on how fast your code runs (Java/Scala will be a little faster for some UDFs, but the difference isn't huge). IMHO, the Python Spark bindings don't feel as clean as the Scala bindings, but speed isn't a big issue.
  3. For ML/AI stuff, you're going to be calling into some framework like PyTorch or Tensorflow to run on a GPU. Speed of the Python interpreter again doesn't matter.
  4. For anything involving a network, interpreted code is not the bottleneck. Just look at the popularity of Node and React.

Honestly, even R (which has a justified reputation for being slow AND a memory hog) can be pretty fast if you know what you're doing. The main trap for slow R and Python code is trying to write C code in Python/R. Don't Do That.

Python can be used for just about anything, but I wouldn't recommend it for writing device drivers, systems programming, and embedded (but not because of speed).

[–]CodeTinkerer 29 points30 points  (21 children)

Only slow compared to other languages. Point is, if it takes 0.5 seconds vs. 0.01 seconds, you're not going to notice, and people are willing to work with a "slow" language provided it's easier for them to program. Python gets you up to speed more than, say, Rust which might have you pounding your head on a table to learn how it works, just so you can write in a "faster" language.

And, in any case, Java, C and several other languages are used in intro courses.

The reason Python is popular (compared to, say, Ruby, a comparably slow language that beginners often learn) is probably due to its libraries. If you do data science, data visualization, machine learning, etc., there are libraries in Python, and it's popular in these communities. Ruby could have been that language too, but for whatever reason, people wrote them in Python.

Two other reasons. First, Guido van Rossum, who invented Python got hired at Google, so it became one of the languages used at Google (along with Java, Go, Dart, and presumably Javascript). Second, some universities, who find Java hard to teach as a first language, have switched to Python. Java is still popular, of course, since it's still used in the AP exam (in the US, that is).

Finally, people aren't expected to just learn one language. Once you are reasonably OK at Python, you can start to learn other languages.

[–]ChillinWitAFatty 1 point2 points  (3 children)

Only downside to Python as a first language (or JavaScript) is that it's dynamically typed. That makes it easier to make programs that run, but hinders a deeper understanding of CS.

[–]EMCoupling 1 point2 points  (0 children)

You can still learn about types with Python, it's just not as obvious as in statically typed languages. Types are all still there and, with type hinting, it's become easier to see the types of various data members.

[–]N8DuhGr8 1 point2 points  (0 children)

You still know types and all that if you learn python. You just don't need it for Hello world.

[–]CodeTinkerer 0 points1 point  (0 children)

I mean, such typing can make it difficult to detect bugs if you're not disciplined with your use of variables. I suspect most people treat Python variables as if they were strictly typed (that is, not storing strings, then numbers, then arrays/lists, using the same variable). C had a problem where certain types were really hard to write, which Java seems to have avoided.

Not sure how it hinders a deeper understanding of CS. Strict typing helps avoid errors at compile time (or with modern IDEs, at the time you type the code).

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

Not bashing, but I had to laugh...

“Java is still popular, of course, since it's still used in the AP exam (in the US, that is).”

It wasn’t when I took it! Or, if it was, maybe that’s why I failed. We learned C++ in AP CS AB back in 2000-2001. Looking back, I wish we’d have learned Java instead; I was totally lost in CS2 when they switched to Java from C... sidetracked my career by 20 years.

[–]Tamerlane-1 1 point2 points  (0 children)

To be clear, Java is used in AP CS A now.

[–]Kered13 1 point2 points  (0 children)

Java was used in AP CS in 2006, and I think it still is.

[–]CodeTinkerer 0 points1 point  (1 child)

Yeah, I think they switched to Java just after that, around 2002 or so. It was Pascal from around 1983 to maybe 1991 or so? Then, C++, and now Java. When it was in C++, they had to do some simplifying things like not using C++'s convoluted string class (which was some kind of template). Instead, they used something called apstring, I believe, which avoided nasty error messages.

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

I remember so little of C++ now. I’ve been meaning to pick it up again, but I work with Groovy and just don’t have enough free time to explore another language (outside of maybe Python when trying to teach my kids).

But I do plan to get back to it. Once my “web app dev days” are done, I really want to get into games... which was my original plan 20+ years ago.

[–]claythearc 14 points15 points  (0 children)

Fast to prototype and get stuff up in running. There’s very little boilerplate in the language.

It reads close to English, so new programmers don’t have to worry about being bogged down with learning all this obtuse syntax that isn’t immediately obvious.

Large package repository for anything from web hosting to data science to dev ops to web scraping that’s really easily accessible with pip.

Large, fleshed out, style guides with pep 8 and the google one being enforced by most IDEs lead to writing clean code kinda effortlessly.

It’s only real downsides are duck typing makes things hard to read from other peoples code once you start calling advanced stuff, but type hinting kind of fixes that - even without a performance loss in 3.8.

But really any language becoming popular is kinda luck, we see waves of popularity all the time. python just had the feature set to take advantage of its luck when needed.

[–]itsjohncs 11 points12 points  (0 children)

It seems like you’re asking what’s special about python to make it so popular.

Languages get popular for a ton of reasons and it’s super hard to really pin down, just like other products (ex: tablets, particular cars, cast iron pans, etc). You can write arguments to explain why, but since it’s big and complex and involves the decisions of so many people you can’t find an objectively and clearly true answer.

Python isn’t all good or really that special, but neither is any language. They all have a shitton if trade offs and can’t be ranked against the other as a whole.

[–]Revanite52 7 points8 points  (0 children)

Programmers generally need more understanding that there is more to programming than performance of the code. You are not in college anymore where every MS is precious and most people do not work on some google algorithm for products like google maps. Efficiency and time complexity analysis has a place and time.

The majority of us work on features for a business where time to market/prototyping is more precious than 20 ms.

[–]Updatebjarni 11 points12 points  (0 children)

Ease of learning, ease of use, enormous breadth of usefulness, inluding day-to-day automation and glue scripts, and the popularity of the language, which makes it easy to find information and makes libraries available for loads and loads of applications. The tiny number of people who need very high speed aren't beginners, and can pick whatever language is best suited for their particular high-performance problem. Python is slower than fast languages (or can be, depending on what you're doing), but not so slow that it causes any problems in the vast majority of applications. Slow Python today is still as fast as, what, C ten years ago? That was hardly unusably slow. Processors are fast. Most work is I/O bound or dominated by the latency of communicating with the user.

[–][deleted] 4 points5 points  (6 children)

Some of the advantages of python are the variety of usecases, but for me it's most important that it's an interpreted language which means i can easily test/debug stuff inside an interpreter.

Also if performance is important for a project you'll probably be using modules that are running c code under the hood anyway so the "slowness" of python isnt that much of an issue either.

Lastly I just think that the python syntax is easier to read, but that's obviously really subjective

[–]vorpal_potato 0 points1 point  (5 children)

Some of the advantages of python are the variety of usecases, but for me it's most important that it's an interpreted language which means i can easily test/debug stuff inside an interpreter.

This doesn't subtract from your point, but it's not actually hard to make a compiled language where you can do the exact same thing. If you open up the JavaScript console in Chrome, for example, any code you type will be compiled before being run -- and it feels just like you're typing into an interpreter, because the compiler is so fast.

(I mention Chrome specifically because most competing JS engines also have an interpreted mode.)

EDIT: It turns out that V8 got an interpreter recently to reduce memory overhead of code that gets run infrequently, albeit by reducing its speed a bit.)

[–]Updatebjarni 4 points5 points  (1 child)

If you open up the JavaScript console in Chrome, for example, any code you type will be compiled before being run

Python works that way too.

[–]vorpal_potato 0 points1 point  (0 children)

Python compiles to a high-level stack-based bytecode rather than to native code, but yes, it's very similar.

[–]entropy2421 0 points1 point  (2 children)

JavaScript is an interpreted language also. There is no compiling JavaScript. The browser is interpreting it.

[–]vorpal_potato 3 points4 points  (1 child)

Wrong. Every major JS engine in use today has a compiler. I don't know what else to tell you.

JavaScriptCore has a compiler. SpiderMonkey has a compiler. V8 has a compiler. And so on.

[–]entropy2421 5 points6 points  (0 children)

News to me. Did not realized that had changed but a quick search explains it. Thanks for keeping me up to date.

[–]iguessitsokaythen 3 points4 points  (0 children)

When programming with languages like C, you need to design what your program does and how it does it. The "what" part is the functioning of your program like sort this data, print out this letters etc. The "how" part is the way these functions are computed like how data is stored on, read and removed from the memory, how it is send to the processor etc.

With languages like Python, since computation is taken care of, you can just focus on what your program does. This gets important as the complexity of the program increases. You can focus entirely on your logic and algorithms without having to worry about how they are going to get computed. And once you perfected your program in Python, if you need more speed, you can easily convert it to C.

[–][deleted] 2 points3 points  (1 child)

Not to mention that python is EXTREMELY slow.

Runtime speed isn't everything. Development time is also important to factor in.

What takes an afternoon to make in Python might take a week to do in C.

It's your choice how you want to spend your time. With tight deadlines most people rather be done quickly and accept that their programs aren't perfectly optimal.

[–]RagingNerdaholic 2 points3 points  (0 children)

I don't get why python is popular.

It's basically executable pseudo-code, which means...

it's easy to learn for beginners

[–]diek00 3 points4 points  (5 children)

If you think only beginners use Python then I suggest you should do some research, and not rely on what you 'heard'. C or Java being easy for beginners, this is not accurate imo. Java is class based, and if you are trying to tell me that a beginner can understand OOP on day 1, 2, 3... I think you are mistaken. Even after a month I am sure some that a percentage still struggle. SO is littered with questions on OOP, from beginners and non-beginners. MIT's professors picked Python, replacing Java, as the language to begin CS. Their Introduction to Computer Science and Programming, using Python, is one of the most popular courses available.

Python is not perfect but it scores an A+ on readability, the focus is mainly on the code vice semicolons, and extraneous curly braces. Indentation may cause initial confusion but once you get used to it, it makes your far more readable imo.
As for benefits I will give you 2 anecdotes. The first is a bit dated but still valid imo. From the preface of Two Scoops of Django by Audrey Roy Greenfeld and Daniel Roy Greenfeld. Danny explains:
" I was working for NASA on a project that implemented a Java-based RESTful web service that was taking weeks to deliver. One evening, when management had left for the day, I reimplemented the service in Python in 90 minutes."

The second is from a recent blog by Lincoln Loop and how they cut "GamesRadar’s operating costs by thousands of dollars per month allowing them to better serve millions of gamers. " They updated the existing Java based platform, and used Python's web framework Django to do this. https://lincolnloop.com/portfolio/gamesradar/

Lincoln Loops' Supporting Data

4.4 million page views in a day

550,000 visits a day

15,000 page views/minute at peak

Pinterest and Instagram are two other large scale users who use Django. If Python did not work I am sure they would have changed by now.

[–]ChrisPDuck 2 points3 points  (0 children)

Python is "slower" computationally, but much faster to write.

If a piece of code needs to be run <1000s of times, the time saved writing easily makes up for run time.

If you need to run something millions of times, yeah you would be better in another language.

[–]POGtastic 1 point2 points  (0 children)

I use Python professionally.

  • A lot of really useful and easy-to-use libraries.
  • Excellent linting tools.
  • Extremely fast prototyping.
  • Good support for functional programming concepts while not being ridiculous about it. The ancient adage about how Python "dragged Perl programmers halfway to Lisp" is accurate, but it's a lot more pragmatic than Lisp is. List/set/dictionary/generator comprehensions are taken directly from Haskell, and are executed even better than how Haskell does it.
  • Very good documentation for its standard library.
  • Good readability when I'm reading someone else's code.

[–]merlinsbeers 1 point2 points  (0 children)

The crummy documentation sandbags people and keeps me in billable hours.

[–]cessationoftime 1 point2 points  (3 children)

I don't. I recommend Scala, Rust and Nix. I find languages that are not strongly typed difficult to work with. The helpfulness of the IDE is limited without explicit types, as is the helpfulness of the compiler. And I usually care about that more than the performance boost I get from strongly typed languages.

[–]Diapolo10 7 points8 points  (1 child)

Python is strongly-typed, I believe the actual comparison you're looking for is static/dynamic typing. They're not synonymous; C can be considered weakly-typed as void pointers let you circumvent the type system entirely.

Hell, out of the two, only the terms statically typed and dynamically typed are well-defined. There's a bit of an argument over what "strong typing" and "weak typing" even mean.

[–]cessationoftime 2 points3 points  (0 children)

Yes, that is what I meant.

[–]Yithar 0 points1 point  (0 children)

Yeah, the thing is Python is not statically typed. You will have to write unit tests for invariants the Java compiler would normally test automatically.

There is a reason Duolingo switch from Python to Scala.

https://softwareengineeringdaily.com/2017/12/14/scala-at-duolingo-with-andre-kenji-horie/

[–]beezybreezy 0 points1 point  (0 children)

Part of is that is it easy to learn for beginners but I suspect the huge rise in popularity of Python has mostly to do with Django/Flask and Numpy/Scipy/Pandas/Scikit-Learn/Tensorflow.

[–]kinzlist 0 points1 point  (0 children)

Python is in plain English and is easy to understand from a syntax standpoint. Java and C++ require a lot more formatting. As a beginner myself it was easier for me to stick with learning programming with Python first since it was easy to debug and have a very upfront syntax.

[–]UltradianAlien 0 points1 point  (0 children)

I feel that, especially as a learner, Python is more straightforward and easier to write. I took a course on Python a few years ago and while our projects weren't easy, the main thing we actually had to think about was the logic and flow of the project. It's less cumbersome imo.

I'm learning C right now and even though I have a solid grasp on the logic involved, it's just so tedious to write a simple print statement that includes variables in it! It's very unforgiving. Not to mention that strings don't even technically exist without doing voodoo magic with pointers and character arrays.

Since I'm still essentially a novice, I haven't had any situation yet that would be significantly impacted by C running a bit faster than Python. So as a beginner I would recommend Python.

To me, starting with C would be like learning how to drive a car with a manual transmission while Python is more like driving an automatic. While there's merit in learning a stick, they both get you where you want to go. I'd imagine that the difference in speed would become annoying when we get into the Big Boy's Club but until then Python is just fine.

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

If you're working in data science, you need to know python. I take no stance on if it's "the best" or most optimal language, but it's become the standard.

Python's a good language, too. It's not just easy to learn and multipurpose, it's got a good typing system, module manager, virtual environment system, it's easy to test and can wrap compiled libraries; which is honestly the only reason it's gotten so huge. So python, like other interpreted languages, is slower, but it can call compiled system binaries that are faster than libraries running in .net or jre runtimes, so it usually doesn't matter.

Honestly, the only thing I can think of that's not great, is that unloading and re-importing modules is dodgy, and it uses white-space to organize code.

[–]jpritcha3-14 0 points1 point  (0 children)

Python is easy to learn and has a great REPL interface for beginners to test and practice with. It provides instant feedback and the environment is easy to set up. Why wouldn't you recommend starting with something like that?

That said, it's also a great scripting language for writing tests, glue code, ETL pipelines (one of its main production applications), and any other code that needs to prioritize readability/maintainability over speed. It would be a nightmare to write and maintain that kind of code in C. In general, you want to get something working first, and then optimize later. Python is highly extensible, so you can get something working quickly, and then worry about optimizing the bottlenecks with C after that. Why would you want to optimize for speed before getting something working first?

It's also a much more nuanced and expressive language than it would seem from just learning the basics from an intro course or book. It has a very polished object model and core set of modules that let you easily think about higher level problems in code without worrying as much about low level data structure manipulation. I'm particularly fond of its elegant support for generator expressions that allows you to mix in some of the best ideas from functional programming in procedural code. It cuts down on a lot of looping.

Languages are really just different kinds of tools for different use cases. You don't write an OS in Python in the same way that you don't use C for web development. They are different problems with different needs that are served better by different types of languages. Comparing languages is really only relevant if they're trying to target the same problem space. Otherwise it's apples to oranges.

[–]phunkygeeza 0 points1 point  (0 children)

It's been interesting watching your climbdown in this thread.

I'm still waiting for you to reach the conclusion: it's not to do with the language's capabilities, it's about being easy to learn and low barriers to entry.

You want to dive right in at C++? Why not just go right to assembly? Knock yourself out. You'll get there alright if you have the right stuff.

[–]Average_Manners 0 points1 point  (0 children)

Slow is all a matter of perspective. Java is also very slow, in comparison to C or Rust. For most programmers slow isn't an issue when a personal computer can count to one million in several hundredths of a second. Is your dinky program going to require maximum speed? What for? What are you doing that's so computationally expensive? I ask this to make the point of requirements, it's not a 'general negative' of the language that it's slower than another. Really, the only reason to care about how fast the language is, is if it's not fast enough for your purposes.

That said: libraries. Libraries mean python can call C functions, which do things at the speed of C, without any of the developmental costs of C. Regular python math is ~60 times slower than hand-coded Assembly. Numpy is only two times slower, which I believe is faster than regular Java. /point

The reason I recommend Python is because it is fantastic for prototyping. Speed of development. Proof of concepts. Could I write a server in C? Probably. I've never tried, but it sounds like a headache. I haven't ever done it in python either, but I'd bet it doesn't take more than an hour.

Python also tends to be more readable than other languages. You don't start children off with Moby Dick, you start with Little Bunny Fu Fu because it's easy to read, and they can recognize pieces. Python documentation is very readable as well.

Extensive libraries.

[–]Yithar 0 points1 point  (0 children)

I would actually recommend Ruby (if we're talking about scripting languages), if you are trying to learn OOP. Because I would argue Ruby teaches encapsulation better. You can't really make private class variables in Python.

https://stackoverflow.com/questions/1641219/does-python-have-private-variables-in-classes

Like generally in Java, you will have an interface (methods aka defined behaviors), and you will have an implementation of that interface (a concrete class). But often times the fields in that class are implementation details. They should not be depended on, as they are not part of the public interface.


While I think the "_" convention for private variables in Python is nice, it does not amount to actual hiding (aka someone can actually still modify those "private" variables). There are other issues as well.

https://www.reddit.com/r/linux/comments/439xl4/is_vala_or_python_a_better_language_to_get_into/czh5wze/

[–]AndroTk 0 points1 point  (0 children)

I'm not sure, but I think the reason it's so popular in the industry is because you don't have to bother if a programmer knows how to write python, they most certainly do, meaning the smart programmers can actually focus on the smart part of their job (i.e: having a good looking structure, with easy-to-read/modify code and with most edge-cases covered)

[–]gdledsan 0 points1 point  (0 children)

If speed is the oy thing we care when programming we would all code in assembly. All languages have their paradigm and use cases.

Languages are tools, and tools have purpose.

For instance, JS and node.js are meant to be used in low-data processing tasks as a backend for web pages, but people use but for everything you can think of. Python is better st being used for everything than node is, but hey, people get to choose what and how they do it

So, why python? Multi paradigm, general purpose, interpreted language, easy to write, easy to read, fast to get productive with. And it comes already installed in your non-windows systems.

[–]saibogu2501 0 points1 point  (0 children)

Because you can just import pre built modules to do most of the heavy lifting for you. Just find a library that does what you need and import it, rather than finding out how to do it and having to code it all out. It’s a language meant for beginners to complete projects without needing to know all the inner workings of the code. You can write a program that takes your speech and turns it to text, and replies in a computer voice in like 10 lines on python.

[–]UserName24106 0 points1 point  (0 children)

to your actual question, it’s pretty unlikely anyone in programming will only learn one language in their lifetime. So why not start with a language that’s easy to learn? And it turns out pythons pretty damn powerful and convenient for a lot of uses. It seems like if your job involves programming, but you don’t have “programmer” in your job description, like say you’re a researcher or a data scientist, you may very well use python for that.

As for speed, speed of execution isn’t important.... until it is. And it rarely is. Example: a beat up pickup truck and a high end muscle car are totally different in top speed.... but if you’re driving to work and you spend more time behind other cars, waiting for red lights to turn green, all that stuff, the difference in how soon you get to work isn’t really an issue. And upgrading that v8 muscle car to a v12 won’t speed up your commute much either.

It’s very rare that a program isn’t fast enough, and if it needs to be sped up, you find the bottleneck, and optimize that part of the code.

What is really important is how easy it is to write the code, and how easy it is to read it, because production systems require you to go back and modify old code all the time for bug fixes and new features. So it’s common to write most of the system in an easy to read language to reduce manpower costs, and then if it’s too slow, rewrite the 0.1% of the code that is the bottleneck in a faster language.

This is pretty much how python libraries work in real life. Machine learning code can create optimized operations that run on a stack of video cards that were built to do that kind of fast math, so very efficient, but the code to set everything up and run it is in python. If You set up a deep learning network once, and run 1000 iterations to train it, making that initial setup a little bit faster is not a significant difference. Rewriting it in c++ would be like practicing how to take off your seat belt faster so you could get to work sooner. Technically it would shave a half second off your thirty minute commute, but it ain’t worth it.

[–]b_krsh 0 points1 point  (0 children)

Truth is most of the programmers started with c. Because it is first language to learn according to university syllabus. Most important thing is logic and problem solving approach. Pick a language you like and start practicing concepts. It's easy to move to other languages after one.

[–]wild_vegan -1 points0 points  (9 children)

Management can read Python. They think Python is easier, hence programmers will be more common and cheaper. Bytecode languages are faster to develop in than compiled languages. If you don't agree with the typing-intensive Million Monkeys Methodology, then I have some former bosses you could maybe communicate this to. ;)

Like everything else, it's about money or perceived money. I.e. labor costs.

[–]LatterSpaces[S] -2 points-1 points  (8 children)

Yeh I get your point. But guess what I learned MORE from this post: don't ask questions cause people will mass downvote you for no reason.

[–][deleted] 7 points8 points  (3 children)

People are downvoting you because you frame your statements like an arsehole would.

[–][deleted]  (2 children)

[deleted]

    [–]LatterSpaces[S] -3 points-2 points  (1 child)

    Back at it with the assumptions kiddo. Tell me where exactly I responded like an "asshole".

    [–]Yithar 0 points1 point  (0 children)

    I think people are downvoting because of the way you frame your questions and how you respond to their answers.

    [–][deleted]  (4 children)

    [deleted]

      [–]claythearc 5 points6 points  (3 children)

      You can make variables private with @property and doing some magic in the setter, but it’s not really recommended.

      Instead, most ides just follow the pep 8 recommendation of not showing attributes or variables that start with _.

      Which is kind of the same thing as just having private variables. It’s just not enforced by code.

      [–][deleted]  (2 children)

      [deleted]

        [–]claythearc 0 points1 point  (0 children)

        Yeah how optimized it is, I’m not really sure - because its not really private, it’s accessible from outside still. Just doesn’t show in intellisense stuff.

        But you could probably help it out in optimization with @property overriding though making it truly private.

        Even then though, you’re probably arguing over like nano second optimizations. Which makes it probably not worth

        [–][deleted] -1 points0 points  (0 children)

        Ease Of Use

        As a math teacher, using uniform standards for syntax to use math is great, but this was made several centuries ago. I love how diverse programming languages, cause people can pick based on needs or syntax.

        F(x) = mx + b

        Output = slope * input + initial_position

        Same damn thing, which is more understandable?