Hacker News new | past | comments | ask | show | jobs | submit | bernardv's comments login

All those extraneous elements to Javascript are a real turn-off. Python: batteries mostly included. Javascript: feels like you need to drag a dozen suitcases along anytime you embark on any non-trivial project.


My own experience is that anytime you have a situation where the included batteries aren't enough (which has been every time), you're left to figure out eggs vs wheels vs distutils vs setuptools vs easyinstall vs pip vs pip3 vs pip3.7 vs pip3.8 vs pipx vs pip-tools vs poetry vs pyenv vs pipenv vs virtualenv vs venv vs conda vs anaconda vs miniconda.


Anecdotally I have had the exact opposite experience. JavaScript projects generally work after running `npm install` and then running a single build command.

Python projects (in my personal experience) require jumping through a lot of hoops to get dependencies working correctly.

It could be my experience with Python is just bad luck!


It wasn't done in a nice way, but the kitchen-sink builds of PHP were quite nice as dependency-free environments back in the day. Image manipulation and all kinds of parsing and database connectivity stuff built in.

My experience with dependency-"free" web python is limited to small projects using Bottle (one downloaded .py file) and sqlite for tiny sites.

And a Tcl "starkit" aaages ago.


Huh… in Python I feel like the tooling is largely missing.


While the Python ecosystem trends towards a similar state as the JS ecosystem, at least no one yet needs to have any ideas about "tree shaking" and hype that as some kind of "new idea". When one needs to "shake out" code, because it has become too much, one should really think about not getting that code in there in the first place.

In the Python ecosystem some of the tooling does not exist, because it is not needed. Usually Python code is not shipped over network each time a website is called. Hopefully people keep dependencies of projects to a minimum, avoiding to have to fix their mistakes later by shaking out stuff. Python has an OK-ish module system, not great, but OK, compared to how JS started out. There is no need for 6-10 standards competing and requiring different "build tools" to make one huge cluster f of uglified code out of all the code of an application. Mind, it is 2023 and we still have no good way to tell the TypeScript compiler to simply spit out JavaScript code, that can immediately be served on a website, if the TS code has multiple modules. The JS ecosystem still suffers a lot from the not well thought through basis of the language and historical burden of that.

Python is far from perfect itself of course. Plenty of problems in its ecosystem as well.


python is rarely streamed across HTTP, I believe that's the reason js is treeshaked.


Yeah, I get the impression some believe they're comparing apples with apples because they're both interpreted languages, but we don't exactly send Python scripts to millions of arbitrary clients, all of which execute them immediately.


Guido is the one who picked Python's name. Wikipedia actually has an entire article on the history of Python:

<https://en.wikipedia.org/wiki/History_of_Python>


Plausible but not sure it's entirely relevant. Most libs have parts that aren't used all the time. A lib that has no redundant parts is either a gem or a minuscule thing that will create a lot of miniscule deps.


> While the Python ecosystem trends towards a similar state as the JS ecosystem, at least no one yet needs to have any ideas about "tree shaking" and hype

I agree with your sentiment entirely about "When [...] it has become too much, one should really think about not getting that code in there in the first place," but that's really a problem with the NPM community in particular—not something that people who aren't NPM programmers can do anything about (and who, as people who work with JS, are even more annoyed by it than people hailing from communities that use other languages).

> Mind, it is 2023 and we still have no good way to tell the TypeScript compiler to simply spit out JavaScript code, that can immediately be served on a website

I guess it's actually necessary to point out the obvious here: TypeScript is not JS. The fact that TypeScript superficially resembles JS does not make the sins of the TypeScript team JS's responsibility. You could swap "TypeScript" for, say, FartTwist, an imaginary programming language that I just made up and doesn't resemble JS (or anything else that transpiles to JS with tools that have the same problem the TypeScript ones have), and the criticism would be exactly as applicable.

The big problem with the JS ecosystem is that it's filled with people who clearly don't like programming in JS, and yet they advertise themselves as part of that milieu. In fact, enough of them have banded together that they've managed to almost completely commandeer JS's public image, to the point that when JS is mentioned what comes to mind are their shenanigans, inevitably leading to discussions like this one.


> Hopefully people keep dependencies of projects to a minimum

This is not my experience of Python. Some of the tools I’ve installed via Homebrew have whole forests of dependencies. And don’t get me started on all the different Python versions they require.


Precisely, because there is generally little need for it.


Frankly, if you're just writing a local CLI tool with Node, it's not really an issue. Most of the build tool features listed in the article aren't needed for a local JS runtime. Node is even getting a built-in testing framework, and Deno can run Typescript without an intermediate step!

Build tools for JS solve problems that other languages don't have to worry about. You can't use Python (directly) in a browser which means none of these things are important:

1. Bundle size. This doesn't really matter when you're just running it locally. Maybe you want the final binary to be somewhat small, but it could still be many dozens of megabytes and it'd be a non-issue. If a website was like 50MB, it'd be incredibly slow.

2. Platform compatibility. Every user is running a slightly different environment. Gotta support different browsers, or older ones? Now you need to polyfill the language features to exactly what the browser supports. Compiled languages don't have to worry about that at all, and even with Python, you're mostly just worried about the major language version a user might have installed (iirc).

3. Anything related to writing UIs. In JS, you're writing for the browser, which has a pretty limited set of APIs for writing complex, interactive UIs. Hardly anything to help write interactive declarative or reactive UIs. On top of that, since the site is always remote, pretty much everything has a round-trip to a server involved. This means you may start pulling in dependencies to help solve these problems. In Python, you probably just choose a UI framework like QT and it gives you most everything out of the box.

My point is just that we tend to compare JavaScript to other languages without really considering the unique environment JS gets deployed to. It's really not comparable. If Python (or any other language) was running in a browser, you'd have a huge new class of problems for that language to solve which it just didn't need to care about before.

I feel like the meaningful comparisons to JS are related to language syntax, type system, local runtime performance, dependency management, etc. And those topics are a lot more subjective!


Platform compatibility is much easier in web compared to python or anything else native. You only have the browser to worry about and nothing else, and the variation between browsers is there but much less than the variations between cpu architectures, oses, languages etc in native apps. The variation between the two biggest ones, firefox and chrome is even narrower yet we still get "only works in chrome" or worse bundling an entire copy of a very specific version of chrome along with your app in for example Electron.


> Build tools for JS [sic] solve problems that other languages don't have to worry about.

Explain that to all the people writing browser extensions which by their very nature have an entirely different set of relevant engineering concerns in contrast to Web apps delivered by HTTP—and yet the same minification tools and compatibility shims still abound for as far as the eye can see.


I think this holds only if you opt-in to tools like WebPack, Babel, Next.js, React, and the like - or have to work in a project where someone else opted-in to these tools.

Deno is a single portable binary file that can be embedded in app bundles and invoked on users' machines. That's easier said than done with Python.


Why is this opinion resulting in negative points? It speaks to the sentiment of the post. Happy to discuss the topic constructively.


I'm not sure why its getting negative points, totally valid take to have.

In my own experience though, python is far from batteries included. Ill tackle one vertical: packaging & dependency management. Historically you didn't get much out of the box for this problem.

You have pip, virtualenv, virtualenvwrapper, pyenv, pyvenv, pyenv-virtualenv, pipenv, et al. Almost a dozen different, and sometimes redundant, solutions for a problem that historically python didn't solve natively for free. Poetry has drastically improved this problem, but not enough to really distinguish python from JS in a meaningful way IMO.


Speaking of excluded batteries: Python. Most hardware doesn't ship with it of out the box.

Be mindful of your blindspots.


Python has a fat standard library with a ton of cruft, but they are also missing crucial stuff like a `fetch`.


Buffet’s simple advice for anyone wanting to invest but not sure how to start - Have at least some exposure the S&P500 for the long run. Pretty sound advice.


Typical human behavior to constantly seek to push their luck, past the point of sustainability. Any resource-based community, tied to a single commodity, must know it is living on borrowed time.


It's really easy to be so philosophical when you're not going to lose your livelihood


What other occupation do you think they should have living far from the big cities? It’s either builders, farmers, public sector or some shop or motel or all of them.


Well thats true forever and even for non-human animals.


Love both languages. However, by the time I discovered Ruby, around 2010, I had already invested a lot of time in Python - and the Python ecosystem was already leaps and bounds ahead when it came to numerical and analysis-related libraries. But Ruby had an elegance to it and expressiveness which was a welcome change from Python and other commonly-used languages at the time. I think a lot of people had similar experiences but were already invested in a tool which came with a large collection of ready-made and tested add-ons.


The fact I have to upload to a server and my document will not be deleted for up to 24 hours, makes it a no go for most corporate users. Make this a standalone desktop app, with zero cloud dependency and it would be useful. This is very useful for a first pass through a legal doc, for example, to triage documents.


Also, it uses OpenAI services (GPT3) - so now you also need to understand their TOS and data retention policies. Makes it a non starter for any private or confidential documents.


Start with a less offensive domain name if you want someone to read your precious thoughts.


How is it a train wreck? Are you alluding to some mis-informed view of its politics, or some aspect of its tech industry? Not clear from your comment, I’m not looking to start an argument.


I live in SF and I've met about a dozen engineers who were studying or studied at Waterloo. 100% of them had no desire to work in Canada. They all had the same thing to say, as much as they love Canada, salaries suck, and so do the taxes.


As a Canadian citizen, it makes more sense to immediately move to the States to work because of the TN visa, but if you are an Indian or Chinese national who is dealing with a 30-50 year greencard backlog, moving to Canada for 3 years to become a citizen makes much more sense. That way you have a first world passport plus the ability to work in the US indefinitely. My parents did that, and multiple other people in our network have done that.


TN (which is a status technically and not a visa) doesn’t have a path towards citizenship / permanent residency and if a customs agent decides that’s what’s happening you can get deported. A Canadian citizen has a 6 month limit to generally visit the US but you cannot work there. I had to switch to an h1-b after my TN first before I started a process towards permanent residency. Additionally, h1-b lotteries and green cards, if I recall correctly, go by country of birth, not citizenship, so having a Canadian citizenship isn’t an aide there either.

Has something changed recently or did I misinterpret what you meant?


I think you misinterpreted some stuff. Generally, for ex-Indian and ex-PRC nationals, coming to the US on a TN and working on a TN indefinitely is preferable to having to return to India or China, because worst case you made bank and are a national of a first world country with a standard of living comparable to the US

Also, at least circa 2012-15, Microsoft's immigration lawyers would recommend going via the CBP border post in the San Juan Islands or Port Angeles (take the ferry from Victoria to Seattle) because they'd just wave you thru with little to no hassle. The CBP post at Surrey/Blaine would tend to grouse you more.


That's what I did some 23 years ago. Back then the pay discrepancy wasn’t as large as today. I started looking for positions in Canada in the last five years and have concluded that I can’t afford an approximately 50% pay cut, or to live in the big cities with ridiculous housing prices.


I've talked to many Waterloo engineers who say taxes are no different in Canada vs. California. It's the salaries that are wildly different, as well as the value that they get out of their taxes.


I'm not sure what their "train wreck" comment is alluding to either but as a recent graduate from a Waterloo university I've heard for years about "brain drain" and how most of my fellow graduates leave the area to pursue better careers down in the US or abroad because Canada's tech industry simply does not provide the pay, benefits, career ceiling, etc. as Silicon Valley, for example. This problem has been plaguing Canadian tech for quite a while you can probably find many articles about this on Google.


The parent comment seems like a bit of hyperbole, but Canada for a very long time hasn't prioritized tech industry. It's common to see salaries for tech jobs in Canada be much less than counterparts in US. I work with Canadians on my team and their opinion is that unless you're in lumber or drilling something from the ground, you might as well move to the US while of working age.


~67% of tech graduates at large Canadian universities move to another country. As someone who has done technical hiring in Canada there is a absolute massive influx of immigrant tech workforce, nearly 10:1 on job applications.


Excel is still a killer app. Microsoft has undermined it for decades. it’s a shame.


Very cool. I was an MS Windows Tech Support during the Win31/1 to Win95 transition. Looking back, it went pretty smoothly. Most of our calls were HW driver related or usability related if I remember well.


I'll share my own story of the Windows 3.1 -> 95 migration and MS Tech support. At the time, I was using my grandfather's old PC that had originally been a 486sx 33mhz processor with 4mb of RAM and a 200mb HDD. We upgraded the machine using an Intel "Overdrive" processor to a 486dx/2 66mhz processor with 8mb of RAM and added a Soundblaster 16 sound card and triple-speed CD ROM drive. I received a copy of Windows 95 for Christmas 1995 and proceeded to install it on the system. It worked pretty well and, a few months later, I decided I wanted to add the "MS Plus!" pack.

I was 14 years old and knew very little about PCs at the time; though, I was learning. What I definitely didn't know at the time was that the HDD in the machine that I was told was nearly 500MB was actually a 200mb drive that had been compressed with an older version of DriveSpace. The addition of Plus! upgraded the compression to DriveSpace 3 which corrupted something on the drive that caused the system to hardlock as soon as the Windows 95 UI appeared no matter what I did.

After spending 4-5 hours on the phone with a very patient tech support specialist at MS, he eventually concluded that I would need to format the drive as nothing we did in those hours worked at all. Definitely a major learning experience for me doing my first full system format and OS reinstall.

By the end of 1996, I'd be doing my first Linux installation on a slightly newer PC that I saved money from a summer job to buy. If it hadn't been for DriveSpace 3 and an MS tech support specialist who educated the hell out of me for a few hours, who knows when (or even if) I would have gone down the rabbit hole that led to my career.


It's difficult to explain to people today just how good Microsoft tech support was in the early-mid 1990s. We had a similarly complex issue with DOS 6.something that I don't remember the full details of, and I think I learned more about operating systems in the couple hours we were on the phone with MS than I did in the semester-long operating systems class I took in college. Some days after the call we got a stack of floppies in the mail from Microsoft with a small bug fix that helped with whatever the situation was we had encountered. Just night and day compared to most modern interactions with tech companies.


> Some days after the call we got a stack of floppies in the mail from Microsoft with a small bug fix

That is just so utterly inconceivable today that I didn't believe it at first. Not just being physical media, but receiving that level of attention and care.

The best you can hope for these days is a vague forum reply with some shockingly bad information from an "official Microsoft rep" who is at least 5 degrees of separation from anyone who has seen code before. Disgraceful.


I was on official Microsoft support forums for Xbox cloud this fall. Many of us had similar breaking issues that did not appear to be a pebkac. I provided reasonably detailed description, what I tried, what I discounted, my full hardware software and network setup, testing results on different machines etc. But couple of other users provided hours of their own network traces and wiresharks and extremely detailed investigation. Basically handed a full replication and analysis to them for something that affected a significant number of people. Continued copy and past response from "support" was basically to send us to reddit or stack or some other even more social support.


I worked for a summer at a managed service provider that was a certified partner of Microsoft, Cisco, HP, etc. The level of service you get as a (technical) business partner is unbelievable compared to what you get as a consumer. Cisco TAC made a custom firmware patch for me once.


This is something you only see from indie FOSS developers nowadays. I used to do this, and my users were always delighted. They usually became pretty loyal to the project, and the quality of bug reports they submit got exponentially better as a result.

It's a great strategy all around if you take an hour to care about another person.


The most rewarding calls were those helping either very young or very old customers who just needed help getting started. I recall a grandfather calling in with his grandson, trying to figure out the new Windows machine he had just bought him. Being patient and understanding was all it took to make a difference.


That is pretty wild, imagine that support in the current climate


This lead me to wonder if retail Windows licenses are expensive because they used to include a phone support and then, when people learned how to Google for problems, Microsoft dropped the phone support but kept the price because "customers are used to this price tag"?

I recently bought a Windows 11 machine that came with Windows 11 Home, I felt the need for some Pro features and went to check the price for an upgrade and my jaw dropped. Years of "free upgrade to Windows 10/11" lead me believe those licences were less pricey nowadays.


They have basically done the same thing with software assurance support recently. A few years ago when we had a SQL issue in pre-deployment testing we opened a ticket and spoke to an engineer who knew what they were doing. Last year when we did that we had a 1x/day email back and forth with an out-of-country third party contractor who ultimately was unable to help us in any way. We ended up figuring it out ourselves (that Visual Studio version somehow conflicted with that SQL version such that data errors would get introduced (WTF!?)) while said support contractor was still trying to get in touch with real actual SQL engineers for us.


>Microsoft dropped the phone support but kept the price

If you do the inflation adjustment from Win 95, you'd see that a modern Windows license is far cheaper today than it was back then.


$199.99 if I'm not mistaken.


It was something like that; I remember my friend’s mom arguing for a hour to get the mouse for free (it was advertised as such or something on any new PC and the sales guy wanted to say it didn’t apply) and they forgot to charge for windows 95.

Of course soon is was bundled with any prebuilt but back at release those were relatively rare and expensive.


At the same time, it’s probably worth remembering the contemporary Microsoft rule of thumb that “each product-support call costs a sale”[1], that is to say, handling a single product-support call to that standard costs as much as was earned by selling the product in the first place (and the products weren’t exactly cheap—not that they’ve become cheap now).

[1] “Old New Thing” (the print one), https://books.google.com/books?id=wYrCitbs5PQC&lpg=PA1&pg=PT...


Google and the new wave of firewalled engineering orgs are so long-run stupid that it boggles the mind.

A legacy proper, functioning support org's job is to sift through user-is-the-problem bugs to identify the smaller list of actual bugs... which engineering then fixes. Because they're actual bugs!

Nowadays, folks look at Support and QA as cost centers, to be funded and staffed at minimum levels.

Small wonder SRE have become the new rock stars -- companies disempowered anyone else able to call a bug a bug.


But if the IT guy tells his boss that ‘95 don’t work with shit because sim city didn’t run for him at home, it could cost a lot more sales from a company that chooses not to upgrade.


Exactly. We are moving to a tine where having a person individually and attentively help you with anything is a high order luxury item.

A major change is on the horizon though. We are close to where a large language model could play the role of the support side of that call. But if it an AI on the support side, would anyone bother to learn on the customer side?


The large language model would still need training data, which necessitates those high-quality support calls still be recorded for training data.


Can they just add that to Cortana and have it format itself and reinstall Windows for you?


That must have been a wild time, between brand new interfaces and a changing hardware landscape. Did you have many BSOD calls, or was that what you meant with HW driver related?


Plenty of BSOD calls for sure. Also some very memorable calls from a bunch of Linux guys who would think-up of a monster Windows machine loaded with all sorts of crazy hardware peripherals and call support to mess with us.


Are you sure it was truly just to mess with you? If I were a Linux kernel maintainer back then, and there was some hardware I wanted to fix support for but didn't personally have the money to buy, I think "trick Microsoft into divulging how their own driver for it works" would be what I'd see as a "clever hack"!


Perhaps. But I think some of them were actually more senior techs calling in and messing with the new guy.


About as wild as any given day in Node.js land


Same here, though not for MS, just ISPs and resellers. Most often, iirc, it was drivers on floppies and “how do I do …”


The most dangerous thing about ChatGPT and “AI” in general is the horde of media editors, marketers and self-proclaimed influencers hyping it up. Aside from that, exciting times.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: