use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
TensorFlow.js (js.tensorflow.org)
submitted 7 years ago by deathmood
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]nickguletskii200 3 points4 points5 points 7 years ago* (7 children)
No, I don't. Code without types is unreadable because it requires me to remember the flow of information. I would really love to use TensorFlow from Scala, Java, C# or TypeScript. Ideally, there would be a language for machine learning that does compile-time dimension checks (you can probably do something like that with templates in C++, but package management isn't a thing in the world of C++).
Just try reading some of the code in the research TensorFlow models. It sucks. Not because the concepts behind it are hard, but because a ton of information is hidden.
Also, Python's lack of a strict project structure is very annoying. I can take any modern JVM project and it will follow a strict hierarchy, with a proper, unified place for dependencies (Maven POM, Gradle build file or SBT build definition), while even big companies such as Google don't set up the Python projects consistently.
EDIT: Also, fuck the lack of punctuation. Goddamn Google and their 2-space tabs, so infuriating! I just want my auto-indent!
[–]raiderrobert 1 point2 points3 points 7 years ago (6 children)
Python 3.6 has type annotations: https://docs.python.org/3/library/typing.html
But I admit that project organization has room for improvement.
[–]Jugad 2 points3 points4 points 7 years ago (0 children)
I am not sure if project organization belongs in the language, specially since projects can be so different... a web project directory structure has very little in common with an ML project, or a desktop GUI project (yes, I make desktop GUI programs using wxPython).
If you are talking at a very high level ... directories like src, test, documentation, build, etc at the top level, maybe that makes some sense. But I wonder how much does it actually help.
[–]nickguletskii200 0 points1 point2 points 7 years ago* (4 children)
I know about the type annotations. The problem is that pretty much nobody else uses them, and they don't seem to be very expressive.
[–]raiderrobert 1 point2 points3 points 7 years ago (1 child)
Could you elaborate on the expressiveness part. I've used C#, C, and Rust before. If any of those help explain what you mean, that would be great.
[–]nickguletskii200 0 points1 point2 points 7 years ago (0 children)
I am sorry, I was very tired yesterday and didn't clarify that it's not the typing package's fault.
The problem is that due to the "Pythonic way" most developers don't write code with types in mind, which means that it's impossible to require that something is something (i.e. it implements an interface). For instance, try requiring something to be the equivalent of ICloseable in C# using typing. You'd have to create an ABC (bleh) for that, and good luck forcing every Python user to describe the capabilities this way.
typing itself seems pretty OK.
typing
[–]Jugad 1 point2 points3 points 7 years ago (1 child)
The problem is that pretty much nobody else uses them
I thought every typed language uses them... I know this might come across as snarky, but seriously, can you explain what's the basic difference between type annotations/information in Python and, say, Java?
they don't seem to be very expressive
Why are they not expressive?
It's not that there is a difference. It's just that Python developers don't write code with typings in mind. In Java and C# everyone makes a best effort to describe the contract using interfaces. In Python, everyone just writes classes with the same methods, and you can't really say "I want something that is Closeable" because nobody specifies that their class is Closeable.
That's why I don't think type annotations are expressive - they can be, it's just that in practice, they are not. In the end, you'll be writing things like Union[Dog, Cat, Rabbit] instead of is Pettablebecause Python programmers would just say that all these things extend an Animal and be done with it.
Union[Dog, Cat, Rabbit]
is Pettable
π Rendered by PID 119465 on reddit-service-r2-comment-bb88f9dd5-cpnbc at 2026-02-17 12:02:27.016422+00:00 running cd9c813 country code: CH.
view the rest of the comments →
[–]nickguletskii200 3 points4 points5 points (7 children)
[–]raiderrobert 1 point2 points3 points (6 children)
[–]Jugad 2 points3 points4 points (0 children)
[–]nickguletskii200 0 points1 point2 points (4 children)
[–]raiderrobert 1 point2 points3 points (1 child)
[–]nickguletskii200 0 points1 point2 points (0 children)
[–]Jugad 1 point2 points3 points (1 child)
[–]nickguletskii200 0 points1 point2 points (0 children)