4 ms·
Don't get me wrong, it is obviously your right to dislike a language. I've designed plenty of reliable systems in Python without much issues whatsoever with ma
by odonnellryan 7y ago
Don't get me wrong, it is obviously your right to dislike a language.
I've designed plenty of reliable systems in Python without much issues whatsoever with making them reliable.
I have had some problems with code organization over the years (Python certainly lets you "do your own thing" which can lead to issues with organization over time) however I haven't had reliability, stability, or speed issues for 95% of the problems I've worked on.
Only times I've ever personally needed a faster language - when submitting problems in Python to online courses (algo). Then I used C#. Whatever, not a big deal :)
Python says the goal is to have "one right way" to do things, but certainly there are many, many ways to do any of those things.
> I want modeling flexibility, the ability to examine a problem from multiple perspectives and explore the solution space in-parallel from multiple angles of attack.
Can you give an example of where Python doesn't allow you to do this? I've never had this issue. Actually the opposite: mocking solutions are extremely easy with Python IMO and the tooling available (even the uber-free stuff) is awesome and easy to debug with (much easier than using Visual Studio for example - not saying VS is a bad app, it is great).
- metroholografix 7y agoHow about all of the following: Python GIL takes away lots of viable solutions. Lack of metaprogramming / code generation at runtime. Lack of performance forcing me to severely compromise or implement things in C. Type system is probably among the worst in the dynamic language space (compare to Common Lisp and Erlang). Python is not an interactive programming language and can not be used to implement rapid feedback loops as is possible in Common Lisp, Smalltalk and Erlang. The object system is very basic and error-prone compared to CLOS. The error handling system is very limited. I've found that all of these points translate into loss of flexibility and severely constrain the solution space. Having worked extensively in all of the alternative languages that I mentioned, there is not a single day that goes by where I'm programming in Python that I don't curse the language for being so limited / badly designed.
- odonnellryan 7y ago> Python GIL takes away lots of viable solutions. Agreed the GIL is annoying, but I've had no issues with creating large distributed job engines with Python. Actually the tooling made it very easy. If you're trying to do this without using existing frameworks I guess it may be difficult. > Lack of metaprogramming / code generation at runtime. IMO Python is the definition of metaprogramming. Actually, usually you use something that is literally called a "metaclass" to do so. Also everything is an object that you can override as you like, so not sure what you mean here. Maybe you were not aware of these features and functionality? > Python is not an interactive programming language That just isn't true... Are you using libraries at all or are you avoiding them? I've met a lot of developers who do not like to use libraries, but that is a major strength of the Python ecosystem.
- metroholografix 7y agoI get the feeling that you are easily dismissing my points without having personally experienced the languages and ways of working I'm referring to. If that's true, then we can only agree to disagree as the only way for you to really see my point of view would be through familiarizing yourself with the paradigms and tools I mentioned. I'll give you one example, for the last point, Python not being an interactive language. If you work in an actual interactive language (Smalltalk, Common Lisp, Erlang) you will realize what the term can mean when properly pursued and made the focus of a language, and see exactly how Python fails to live up to that.
- odonnellryan 7y agoUnfortunately I can only speak with regard to Python, but I don't mean to dismiss your views. The language isn't perfect, but I'm sure the languages you love have flaws as well. Regarding interactive language, can you give an example? I've tried to search and while I can find a lot of examples of what I mean in the context of Python I can't see anything that gives me good info regarding Common Lisp, Erlang, or Smalltalk. Also, can you answer my question whether you were leveraging libraries when you used Python or trying to create all your own solutions to issues?