Apparently I indexed this in my mind with the word "ladder", but now I'll just remember "The Blub Paradox".
9,064 karma · joined May 15, 2013
I leave now, and in the small scheme it is irrelevant. In the grand scheme it is also irrelevant because there are truly deadly scenarios on the near horizon.
---
It seems I am shadow-banned, but not with balls. It's more a passive aggressive thing where I post occasionally and get a response "you are posting too fast, slow down". Not true. Be honest. If you don't like my content, own up to it. And explain how I gained the karma I have if my content is sh*t.
HN is becoming like every other corporate money interest. It is unwilling to pay for human consideration, and instead it exists to promote goals that favor investors of one sort or another.
Before HN I had many years on slashdot, and 186k karma. Either I'm exceptually influential, or sometimes stuff I say has value. I don't get paid to be on HN, and frankly my reputation here is irrelevant. When I say something, it's because I have a thought or opinion or question that I hope to get feedback on from other thinkers. If HN is no longer a place for thinkers, then it can fk off and die like slashdot and digg. Dinoaurs die. They may make bank, but they ultimately die as losers. Don't be a loser. Be a team player, a participant in humanity; be a change that you want to see.
Don't allow spammers to submit 10+ stories per day that favor Russia or US right wing bs. Or maybe do that, and life as we know it lasts 20 or 100 years less than perhaps it could if we tried to correct things. But hey, if you can earn some money and live large and die, who cares right? Just don't have any kids, because they're going to bear the burden of your sh*tty choices.
Apparently I indexed this in my mind with the word "ladder", but now I'll just remember "The Blub Paradox".
To my great surprise, it was an original CompuServe email address. There are still some (original?) CompuServe users with intact email addresses.
But it's such a common pattern of behavior in less regulated environments. There are many variants, but the common one is this:
1. upstart innovator, filling a need; scrappy, hungry, motivated.
2. reaching the market, making waves, building a base. still same mood as #1.
3. "sudden wealth". ICO, big investment, buyout, f-u money, whatever. some people leave, some stay and lose their hunger, and some people ascend into management and play the long (money) game.
4. quarterly earnings per share concerns top all others; executives know their pay is based on board considerations and appearing to keep shareholders happy. innovation takes a deep sideline as short-term and protectionist approaches prevail.
5. other companies like this one when it was on steps 1-2 appear; threats are real, but board and shareholders are slow to catch on; company is large, and it has lobbyists. monopolistic behaviors are the easiest route to maintaining dominance. stamp out competition before it hits the public radar. keep the quarterly EPS on target. keep the bonuses.
6. predictably this cannot continue, and the company falters. it is embarrassed by a hungrier company. execs leave and upgrade their positions in other similar companies. sharholders "suffer" with stagnant share prices.
7. maybe. company pivots, reinvents itself actually or in appearance. cycle either starts anew-ish, or a publicity campaign convinces the public investors that it has (and new investment should arrive).
This is the state of American capitalist corporate behavior. Downvotes are fine; they simply indicate how ignorant (unfortunately) the latest generation of HN readers are. I'm near the point of not caring. The world can burn, the ignorant masses can be under the boot of corrupt people, and anyone remaining can die with far less than they hoped they would have.
I would like to help prevent that, but celebration of ignorance has become so great that there may be no recovery.
- The OOP features of Ruby are consistent and ubiquitous (everything in Ruby is an object); Python depends on manual patterns to do OOP (self as the required first argument). Python also depends on special decorators to indicate what functions are instance vs static. Ruby does have a difference in definition, but it's simpler and more obvious (and requires one line fewer of code to define)
- Only finally has Python gotten a switch statement, and surprisingly it has adopted some Elixir-ish pattern matching features. Incidentally, some in the Python community are strongly against this new thing. "Why would you need that!?" Prior to 3.10, you would need more complicate if/else if structures in Python to do the same thing you could do in a concise and clear Ruby case (switch).
- Operations on collections: this is often described as functional programming, but it really is just "doing stuff on collections of data". And in that story, Python's list comprehensions are arguably less readable and less logical than Ruby's. Many of the tools you need in Python must be explicitly included from functools module.
- Ternary operator: many languages have `expression ? do_true_path : do_false_path`. It's a very common pattern which is concise and honestly quite clear. "This thing is true? then do this; else do that". But in Python you break that up into "do_true_path if expression else do_false_path".
- Everything in Ruby has a return value, but not so in Python. So in Ruby you can make assignments (or return values) from the result of if/case. For example, assume you want to return a specific value based on some series of conditions, such as handling an error and returning some enriched data based on the error code. In Python you will have to define a local variable and explicitly set that variable equal to some value in each branch of the conditional. Then afterward, you can use the value of the local variable. Or you would have multiple returns, one in each conditional branch. In Ruby you can simply do x = case ..., or because the last statement of a function is the return value, you wouldn't even have to return it. You just have 'case ...', and the value of the branch is what is returned.
There's a lot more. Some of it is subjective, but my belief is that once someone really knows both, they will prefer the Ruby way. And the more languages you know, the more you develop refined tastes. Ruby still holds up well after knowing 10 languages for me.
(added): the whole whitespace as code thing of Python. It does have one common pitfall, and that is when a line of code gets accidentally indented or unindented below a block which was indented. That line changes scope, likely changing the runtime result; but it may be technically valid, so the developer may not notice the mistake. This is just not a problem with languages that have { } or begin/end delimiters.
If you did read the fine print, and you were of a problem-solving (pessimist) mentality, then you would never buy anything or do anything. You certainly would never take any medicine, because nothing is scarier than the fine print there.
I wonder what the fine print on a Tesla self-driving purchase looks like...
But we are SO far past that now. My argument isn't for what should have happened in 1995, it's for the complacency which has allowed Python to become the top 1 or 2 language in 2022. It's like having proximity detectors on the back of your car, but you still start the vehicle with a crank at the front. We can do better; we have the technology.
The significant dangers in Ruby lie in the metaprogramming, which probably scientist devs aren't exercising.
Because there are now some critically important libraries (pandas, numpy), it means that is the obvious starting place if you want to hit the ground with minimal effort. I think that's totally fine for uni. But there should be a capstone level class for data/ai scientists before they can graduate which shows other languages and teaches some general best practices of software development.
There are plenty of other languages which can do the same job. And honestly, the algos which are available can be recreated if they don't exist. Most of it is not "rocket science".
But the greater problem is that Python itself is a poorly designed and warty language. Whether a scientist or not, choosing Python means fighting these warts. No amount of make-up can cover some of these; and plenty of other languages start with clearer foundations.
He could solve very complex problems, but his tooling was horrible. It wasn't his fault. He had solid education from a German STEM uni (with PhD.), but there was a serious lack of programming skill.
It would seem that because Python is "so easy" to get started that people don't feel they have to bother with learning any real programming skills beyond solving their immediate problem.
I don't blame this on the scientists; software is not their domain. The problem is with PHBs who don't know better and who make decisions based on the toolset used by the "special" people.
Lucky you. You must not have seen the "pythonic" monstrosities I've seen.
Python has such a low barrier for entry that one can "get stuff done" with absolutely atrocious and often very overly complicated OOP-ish code.
Ruby is not my favorite language, but I would bet real money that without dependence on libraries, nobody could show me Python code which I could not show more logical, consistent, and readable Ruby code which solves the same problem. I say Ruby because it's of the same "type" and follows similar methodologies.
Python suffers from far too many years under the leadership of one odd person. It has a cult-like following, whereby anyone who disagrees is an outcast. Where else could you hear comments like, "why would you ever need a switch statement? if/if else works fine!" That's just the tip of the iceberg.
Python is great for integration glue code, but only because of the libraries it has. But now it is becoming more Javascript like, and the dependencies are multiplying to the point where you're better off writing your own left-pad instead (or even re-evaluating your approach) instead of taking on new duct tape like django-database-view.
Sometimes the bar needs to be high enough to force the juniors to actually learn something before they start building "MVP" startups. On the other hand, who cares if the MVP is a horror show as long as you get that IPO and take your f-u money and leave.
Python is a miserably bad language for modern times. If you know any of half a dozen other languages, then you understand.
There was a good essay, from Paul Graham?, about the ladder of awareness of programming languages. Unfortunately I can't find it now.
The point is, Python has won and is frankly terrible. It has inconsistent features, but it has an awkward OOP approach (in a time when OOP is finally being recognized as bad itself), as well as seriously lacking basic language features which are only appearing as of 3.9 and 3.10.
Frameworks like Django and Django Rest Framework expand on these bad ideas, creating monstrosities which make the PHP code of yore look arguably decent.
Sadly, I don't think there's any way to kill this. The only option is to vastly outperform the Python people and produce reliable, readable, performant solutions in half the time and beat them to market. Perhaps someday they will die off.
This is an industry that has a history of ever-increasing executive pay rates with gradual reductions in service quality, gradual increases in incidental fees, frequent bankruptcies, and occasional governmental bail-outs.
This may not be the best starting point, but it's a place.
A friend took some coaching class once where they were given "scary" human interaction challenges, starting with very small simple ones and working up to ones where you would expect to get slapped. Not only did it help condition my friend to be more outgoing, but he got a surprising number of "Ok"s. I'm not sure this is the best approach, but it appeared to be effective.
And it reminds me of this guy: https://www.youtube.com/watch?v=-vZXgApsPCQ
If we could instruct our browsers to use some budget constraints, such as max js size, max number of network requests, and max time, it would force site designers to reign in the unnecessary bulk.
This was exactly what I expected as a best guess from the title.
However, having slammed myself (too) hard against walls playing, I wonder how dangerous it would be to be flailing around blind in a normal room...
Is it VR? Or confusingly is it virtual instrument racks?
Equally confusing is the English word, "sanction". Sanction is a very bad thing, unless it's the sanction which is a very good thing!
At least in some cases, MVP is the minimal product you made which illustrates your solution, your value proposition. You use that to get big investment to build "the real one".
Unfortunately, some (many?) companies want to take that MVP and live with it indefinitely, organically (sloppily) growing it as they go.
MVP can be seen as that thing you do which gives you the opportunity to exist but which gradually drags you to the bottom of the sea with technical debt.
Putin made a grave mistake and cannot win without China’s direct assistance.
Putin’s actions have strengthened US stature and position globally, as well as illustrating the importance of NATO. This presumably is exactly the opposite of what Putin desired.
China could gain influence and power by helping Russia, but at the cost of international relations. More importantly, it would still be a gamble.
Without China’s help, Putin will fail one way or another.
China could instead stand with the rest of the world. This would more quickly end the current conflict, and it would make China a more significant international partner. This is the better option.