The only reason you need that in the first place is because of how expensive updates in react are. It’s lack of true reactivity and user-controlled memoization lead to a ton of trashing.
Svelte on the other hand is as optimized as possible - update the data, modify the corresponding DOM pieces directly. There is no realistic use case where you’d need to spread an update over multiple frames.
> If 1 out of 250 ends up being a $100B company, 0.25% of equity you earn per year is $1M in cash.
Sound like the kind of math a startup would use to lure you in. More like 99.75% of the equity you gain will be worth nothing. And you won’t have 250 jobs in your career. What are the odds you actually land that 1/250 that has a great exit? Less than one in a thousand.
> What are the odds you actually land that 1/250 that has a great exit? Less than one in a thousand.
I’m sorry, but assuming you land in a random startup the odds of landing in the 1/250 would be one out of two hundred and fifty. There are other factors, but saying the odds are <1/1000 requires more justification.
At least I have some math, it looks like you pulled your numbers out of your butt.
It's true that you won't have 250 jobs in your career. But you don't need 250 jobs in your career. Take 10 jobs over 10 years. Eventually stay at the one that's promising. Startup returns have power law distribution, I'm sure you'll make some money eventually.
I don't know, my math might not be perfect, but it's not as ridiculous as you make it look.
> What are the odds you actually land that 1/250 that has a great exit?
What are the odds you're getting that Google job? Google has 0.67% acceptance rate apparently. That's only 7% probability of getting that job over 10 years. Or do you think you're more qualified and your odds are higher? If you think you're more qualified, then why do you think you're less likely to pick the right startup and get the right startup job?
> Take 10 jobs over 10 years. […] I'm sure you'll make some money eventually
Wasn’t it 1/250? Sorry but you’re pulling numbers out of thin air, all you have here is wishful thinking. Fact is most people who work for startups will not “eventually make some money”, their shares will be worthless.
In order to hit it big, you need to either be at the top of your field, which gets you exposure to unique opportunities, or be really good at picking winners (you might as well switch to VC in that case), or just be lucky. You can’t hop from one random startup to another and expect to become rich.
Again, probabilities don’t work like that. You’re not rolling dice to apply to Google, and FAANG jobs are not unattainable, nearly everyone I know that wanted one, got it eventually. Then you have guaranteed high income.
You can choose either life, and the risk/reward ratio is certainly much much higher for startups, but we have to be honest about the odds - they are not great for non-founders.
I guess my point with that is that you'll still make some money if you get a job at top company #2,#3,#4,#5, etc out of those 250.
> In order to hit it big, you need to either be at the top of your field, which gets you exposure to unique opportunities, or be really good at picking winners (you might as well switch to VC in that case), or just be lucky.
But that's exactly the kind of stuff you have to do get a good job at FAANG, is it not? Don't you need to be at the top of your field? Be a little lucky here and there? Maybe pick the right projects that end up being successful? Be a good fit for those projects?
> You’re not rolling dice to apply to Google, and FAANG jobs are not unattainable, nearly everyone I know that wanted one, got it eventually.
And my point is that it's the same with startups. You're also not just rolling dice. You can usually tell if the company you're joining is run by idiots. I also have a bunch of friends who made money, had successful careers working at startups. I consider myself to be one of those people. To be fair my FAANG friends are doing great too, and they do seem to have more job security :)
> You can choose either life, and the risk/reward ratio is certainly much much higher for startups
That's fair. It's all a bunch of compromises at the end of the day.
Why not ask direct & clear then? I also think it sounds disingenuous. This kind of passive-aggression is what “cracking the whip” feels like for employees.
How do you get more clear? When I say "If there's anything I can help with please let me know." that's what I mean. The misinterpretation is because of overthinking, not because of vagueness.
I can reassure the person if they want, but they have to tell me they need reassurance before, or I have to at least detect they're uncomfortable. I'm not gonna go to every employee and say "ok just so you know, I'm not thinking about firing you". That's even weirder!
Consider this: "It's not our biggest account, but it does count for something, so I really want our team to get the demo online by Thursday, so I was thinking of having Jared work with you for for the next two days, or having you hold off on the Tachyon project until Fusion is ready. Which of those options sounds good to you?" These are the techniques used:
The message began with "Just wanted to check in and see," but they're not just curious and adding a layer of casualness confused the message. They're not just checking in, they are asking for reason related to the product delivery. Maybe things are going well, and the manager is seeking to optimize to deliver early. Or maybe the employee is about to delay something or maybe not until weeks from now. But with the intent hidden, the manager concentrates all of the power, setting the managed into an anxious or defensive posture. So clarify the situation with the appropriate level of urgency.
Next, add suggestions of what the manager can do. The employee can't be expected to guess or know what options are available. Is there $ for a consultant? Can a team member ahead of the game afford a few pair-programming sessions? Could tasks be reprioritized? Knowing these options is the manager's duty. Expecting the employee to come up with them is like expecting a boat to tell you how it should be washed. They are likely already pressed trying to perform technically, so generating a list of possibilities without knowing their feasibility compounds the stress. It's like picking movies with a friend: One picks a number of good possibilities and the other choose from that set.
Next, and you may pass this over as overly pedantic: There absolutely are things that a manager could do to help, so asking if there are sounds too simple. It sounds like a weak lead. And for someone struggling, getting led by a person full of uncertainty compounds everything.
Finally, I would suggest reassuring the person they're not going to get fired if they answer this question wrong. With the growth of "hire to fire" positions and stack ranking, employees often feel like managers are simply out to gather evidence of blood so they can be pecked to death. Just be level about how where this work stands in importance.
Please know that even if you've proven yourself to be a talented and compassionate manager over many years, the folks who report to you may have had many more years of managers and companies who did not do a good job of caring for their employees, or may have been outright terrible to them.
There's also the reality that, when corresponding with your employer, it's sort of like talking to the police: anything you say can and will be used against you.
If my manager had a "hey, what's going on?" conversation with me out of the blue, my immediate reaction would be concern. I honestly believe that my manager is a good guy who wants me to succeed, and I'm still very cautious about what I say to him. I know that I can never un-say anything. Also, losing this job would be difficult. Though I am a software engineer and could find work relatively quickly this would put me in a very difficult situation due to the US health insurance system and my wife's serious illness.
I would suggest:
1. In-person or video chats instead of email/slack when possible. Written words tend to be so much more prone to misunderstanding and can be used against a person more readily.
2. When possible, regular scheduled informal reviews with your reports, instead of unscheduled "what's going on?" queries. I've never understood why managers don't make time to talk to their reports one-on-one at least once a month. They could be short 15 minute conversations!
In my experience, number 1 only makes things worse. For a simple status check, it's better to educate the employees about what "status checks" are rather than let them assume... something I try to do day to day and kind of what I'm trying to do here. If you let them assume, most people IME assume that a video or in-person meeting is more important than slack/quick email. Remember that "is there anything I can help?" is a legitimate question, and that this is not a "management tips" thread, but rather about about an employee (or espouse of one) asking how to deal with managers.
Number 2 is a great good tip indeed, if you want a status report, just wait until the next bi-weekly meeting and it will look even more casual.
I don't know about this particular case, but direct and clear can be read more like "accusing" depending on your culture. I think this reads more like "hey is everything okay?" than "why are your numbers dipping?"
Definitely - personally I feel the opposite. The more indirect, the more offensive it reads. “Is everything ok?” tells me there is a problem I need to expose myself (am I underperforming? Do I look unwell? Did I say something wrong?). Feels like a trap.
I’d rather hear what the problem is and how they think it can be fixed. (EU based)
I am trying really hard to resist judging you by your comment, but I will try.
Human empathy and emotional intelligence appears to lead to a common pattern in communications. For personal questions, you always want to ask gently and not aggressively.
This of course, for a lot of developers appears like an anti-pattern. We like machines, probably because humans are confusing with vague inputs and totally erratic outputs. However the whole "I say things bluntly" approach will at some point limit the developer. "Hard to work with" becomes a thing. Of course this can be hidden blessing for a dev that likes working on code in isolation and not interact with people. From a management stand point though it's a little flag about that person.
Now the funny thing is some of the same people that like to speak bluntly tend to not like it when others are blunt with them. Regardless, let's try this exercise.
Which one of these two paragraphs sound "better"
a) "Hey X, hope you're doing well. Just wanted to check in and see if you'll still be doing N things from here on out, or if you've been spending more time doing ___. If there's anything I can help with please let me know."
vs
b) "Hey X. You haven't being doing N things, and it doesn't seem like you have been doing more of _____. Get your act together or start looking for a new job."
The interesting thing to me is that your interpretation of (a) is that it's passive-aggression, "cracking the whip". That it's disingenuous...and I guess this is when I am going to start judging you...
What if you are wrong? What if the manager is concerned about the well being of their employee? Why do you feel like it's aggressive? I will like to postulate that the email is actually very well written. The problem with "direct & clear" is that the manager would have to be making assumptions. Maybe they are working on _____ and not N. He might not know, he might have suspicions, but he can't be sure. Also if someone is having problems telling them that they appear sad / depressed / unproductive creates more stress to some people. Ever been upset that you got upset?
In essence the manager is communicating. They are saying please give me an update on what you are working on. They are giving her an out, to say "I am working on ____", so in essence they assume good intentions. They are also asking about N. Have they stopped working on it? Is it a lull? Furthermore they are allowing for the employee to bring up any blockers or issues she is facing. The key point is though, they didn't make any assumptions. They are trying to find out the reality of that employee.
Haha. You failed. I can feel the judgement from here. Sounds like the classic preconception of the socially-challenged developer. I thought that meme had died years ago. I promise you I am nothing like that, and not very blunt when communicating either. My role is at least 75% teamwork/management, not development.
As someone else mentioned, there is most likely a cultural divide here. I know you’re not “just checking in”. If you were truly worried about my well being, you would not be mixing that with a progress update. “Let me know how I can help” is also just a backhanded way to tell me something is wrong.
What I would like is a professional conversation (not a blunt one). “Look, X, I’ve noticed you didn’t deliver Y and Z on the agreed timeline yesterday. If you need it we can offload some of the tasks to ABC. As you know we need this live by X because [reasons]. Let’s schedule a call if you’d like to discuss how we can get this back on track. Cheers, Your Manager”
None of the “checking in” bullshit, just honest and direct, but also not offensive or judgmental. A more personal talk can be had f2f or over a call.
But that's the issue here: this is how a lot of managers "just check in"! Maybe that's not how you would do it, but that's how a lot of us do.
There's no backhanded way of telling something is wrong. "Is there anything I can do to help?" is a legitimate question. I believe that is the crux of the miscommunication here, not the cultural part (I'm also in EU).
I believe you're reading this in a different way others are, which is completely okay, but is leading to lots of misinterpretation. I'd seriously rethink if you're not the one being judgemental here, especially about the "passive aggressive" part.
I also think you're also coming from a compeltely different direction here: you're giving management advice, while what I was trying to give is how to interpret your manager's words.
Your comment reeks of entitlement. Restaurant owners have been struggling to survive by serving customers any way they can. Sorry your high dining-out standards can’t be met while a few million people die from the pandemic.
How is this entitlement? Dining at a restaurant is a luxury, if I’m going to spend my money on a luxury, I’m going to choose an experience that is safe, enjoyable, and to my interests. Why are you so upset? Why do you feel that the conditions in place are acceptable? Personally, I grew up quite poor and never got to go to restaurants. It wasn’t until I started making a little money in my late 20s that I could start to go to restaurants as a way to remove myself from my current stressful life and just unwind for a bit. For me restaurant dining is an experience and the experience offered at present isn’t appealing.
I think this is the crux of the difference of opinions. Dining at a restaurant is different things to different people at different times. I love the 'luxury' dining experience with all that it entails, will happily pay a lot of money to experience it, and I cannot wait to do that again. And in those cases, yes I expect that all aspects of the dining experience live up to that. But just as often I'm just hungry and want a halfway decent burger and beer served to me as quickly and efficiently as possible.
For most people and in most situations, dining at a restaurant isn't a luxury experience, it's just a way to get food.
For all people in all situations in the UK, dining at a restaurant is subject to VAT; it is therefore considered a luxury (in the sense of being pleasant but not necessary [0]) as opposed to essential 'way to get food'.
It may seem a bit ridiculous to appeal to VAT - there are fairly 'ordinary' goods that are nevertheless deemed inessential and taxable after all - but I just wanted a way to say that I think GP's use of 'luxury' is being misinterpreted as a desire for fine dining; as I read it, I agree, it's discretional expenditure which has my discretion when I think I'll enjoy it. If I don't, why should I?
I don't think that's any more entitled than the converse view here that we have some sort of moral obligation to personally (and not through taxes) support restaurateurs through limited opening.
It smacks of entitlement when dining at a restaurant is considered basic necessity and preparing your own meals is considered a luxury. Think about history. Think about the vast, vast majority of people on earth. Consider just how entitled one must be to have the help prepare your basic necessities of life.
By that argument, indoor plumbing and safe running water can also be considered luxuries. Which, while true, is rather reductivist.
And if we want to talk history, having food made for you by other rather than making it yourself is not a new thing. Having a servant or a wife/mother/grandmother making you dinner was far more common in the past than it is now. I'd probably guess that more people know how to cook and cook their own food today, than at just about any other time in history
These are all just spinning food products around or on a heat source, sounds like we could just abstract and reuse that module without coding up a behavior for each 'new' cooking technique.
Fast food has been a staple of life since antiquity: For centuries, folks went to the baker to get bread, since home kitchen facilities were very limited. Women have been stuck in home kitchens for eons, with male family members not learning even basic skills unless they were employed as cooks or bakers.
I think we've been depending on others for food prep for a very, very long time.
> Women have been stuck in home kitchens for eons ... we've been depending on others for food prep for a very, very long time.
Did the slightly more than half the population throughout history also have someone else cook for them too? A woman's woman perhaps?
No, I'm not buying any argument that says a person is not privileged to have someone provide for them just because they consider the provisioner to be a lesser being like a woman or a slave. Quite the contrary in fact: I consider that a reinforcing argument for a privileged existence.
Servants and maids where much more common in the past than now, especially among the middle class. Also it was more common to have several generations living under the same roof, so 1-2 people would often be preparing meals for 6-12 people. Today it is much more likely that you have 1-2 people preparing food for 1-4 people.
I strongly suspect that the proportion of people eating a meal they cooked themselves is almost certainly higher now than at virtually any point in history.
That’s extremely sexist. I for one am an excellent cook, I’m not a women, and I haven’t been employed for my cooking abilities. I learned to cook because I wasn’t able to experience restaurants. I was tired of the bland boring food my parents made. I started cooking our meals and I would copy from tv shows, magazines. I wanted better food, but couldn’t afford to have it prepared for me so I learned a skill. Any restaurant food is considered a luxury to me. I aggressively budgeted so that I could start going to restaurants as an adult. My cooking abilities only got better when I was able to taste the food that I’d been mimicking for so long. For me a normal family meal cost $20, a single value meal at McDonald’s is $10. So for my family a meal at McDonald’s would be $40 minimum. That increases as the greatly as you transition into sit down meals; where a meal is $15 per person and that’s before tip so $80. How are these not luxury expenses? 1 meal at a restaurant cost as much as 4 at home and those home meals will also produce leftovers for lunches. Before COVID I would eat out 1 times a week with my family and 1-2 times a week for lunch. At that frequency it’s still a lot of money and I have always treated it as a luxury expense that is part food and part entertainment.
Recounting historical realities is sexist? How does one talk about history then, since history is chock-full of inequalities? And might there be some decent, non-sexist reasons why women cooked and men didn't, consistently, over large periods of time and many different cultures?
I'm the poster you responded to, and I think you've taken some things out of context. Of course there is sexism. I was talking about history, and history has a lot more sexism than a lot of western, more "liberal" countries retain - and this is a fairly recent development.
When you’re poor, dining out is a luxury. Like GP, I grew up poor and still think of something like AppleBees as frivolous and expensive.
I like to have an enjoyable experience as well. The hygiene theater has really reduced that experience. Menus being an unexpected casualty of the pandemic.
> why do you feel like the conditions in place are acceptable?
“Acceptable”? To whom? This is why you sound entitled. The alternative is not dining out. You make it sound like restaurants are letting you down or should try harder. The word “acceptable” has no place in this conversation.
It’s fine that you don’t want to go out to restaurants right now. But you’re complaining about how inconvenient it is for you like there is no underlying reason for things to be in this state. Businesses ate also victims of this pandemic.
All of this makes me upset because it sounds extremely insensitive. The world is mourning millions of dead and you’re grumpy about your restaurant experience being ruined. Might be just your wording but one would expect a bit more empathy.
I disagree. You are allowed to have an opinion about something you would pay for. In fact you are allowed to have an opinion period. That doesn't make you entitled.
It isn't the opinion that makes them sound entitled.
The base opinion is: I haven't gone to such places since Covid began because the experience is less enjoyable and more stressful.
But it is said with contempt for the businesses and regulations, which the businesses cannot do much about. Even where it is open, they have to think about their employees and the risk they put them in. Not only that, but folks have been dining in tents and under wooden awnings - in booths even - enjoyably for decades. Where I am at, before covid hit they had heating and blankets outdoors so the restaurants could extend the outdoor seating season. The poster acts like it something horrible thrust upon them, when the fact is that they simply aren't a fan.
If people liked that sort of thing it would have been the business model before it was forced to be. The restaurants have declined in quality. Sometimes this is their fault, and sometimes it isn't. Either way, no restaurant is entitled to customers. A lot of places near me have decided that masks are still required, despite the state saying they aren't. In response, I have decided not to eat there. There's no entitlement either way, just the market.
They require a mask at the door and at any time when not seated. Some places even require you to put the mask back on when the waiter comes to the table. It's all just theater, and I won't be a part of it.
> All of this makes me upset because it sounds extremely insensitive.
> The world is mourning millions of dead
> a bit more empathy.
You're attacking a person for their honest opinion while knowing almost nothing about them, their life etc. In fact you sound angry and insensitive, please keep your emotions under control
Nice way to turn this into a personal attack. I have nothing against this opinion, and said as much above (I might even share it). His attitude and wording is entitled and disrespectful, like this is an inconvenience to him and not the result of worldwide events.
It's not entitlement. You are entitled to express your opinion that dining in restaurants has become something you no longer enjoy. I think it's worth noting since their existence depends upon pleasing customers.
People forget that restaurants are a really modern invention. They were first introduced in France at the turn of the 19th century to provide more than just a way to order one type of food. The main reason they exist is the service, ambiance, and menu. Until "nice" restaurants came about, there were pretty much just taverns and inns, which were not renowned for their dining experience, and in most locales there was just one or maybe two, and the food selection wasn't great.
QR code’s are awesome. No greasy menu to hold, up to date availability, can see more details and better pictures for each item, and order without waiting for someone to show up at the table.
That’s a load of gibberish. JS as a language has nothing to do with browser APIs, why would you judge it based on that? Also, ES6 was ratified six years ago.
Seems like you had a bad experience with espruino / jerryscript or something and are projecting based on that?
Dynamic languages are easier to program in. That’s a fact, and why they are so popular.
Although I like Javascript (Typescript) a lot, I have to bite:
> Dynamic languages are easier to program in.
Only if you don't care about writing correct and maintainable programs. The only thing that dynamic languages make easier is writing code. Or, more specifically, the first couple of versions of it. That's not what typical programming as a process mostly consists of.
By the definition of formally correct, yes, you’re right. But dynamic programming still allows programs to be functionally correct, and verified by testing, which is more often than not good enough.
Writing and maintaining a program in a statically typed language is significantly easier and faster than doing the same in a dynamic language while manually writing all the tests that would cover the same level of correctness that types give you out of the box.
gibberish? "JS as a language has nothing to do with browser APIs, why would you judge it based on that?"
Excuse me? That is precisely what JS is based upon.
Lemme give you a prime example:
JS = a single threaded event loop, ON PURPOSE.
That directly affected Node.js as an implementation.
Your browser has an embedded scripting engine. Embedded, meaning, the source code for your browser includes the scripting language engine, and JS can run on that and script various permitted things via the browser API.
ES6 may have been ratified six years ago, but it's not the target code your front-end build chain spits out, is it... browsers don't uniformly support it yet. fun facts.
Look, I've been programming JS since it was invented.
I'm not impressed by "classes" that don't exist, arrow functions, async/await, futures, promises, fibers, and assorted hacks that don't mirror the actual CODE (what computers execute) a JS engine actually is based upon.
I don't need these tools, why should I use something that I need to transpile when I can code directly for browsers as they are in 2021, including legacy browsers? I don't find ES6 "easier" in any way..
Regarding dynamic languages on microcontrollers:
Dynamic languages cannot directly control memory allocation and manipulation, typically are heap based and have no concept of a stack frame, and are basically just a computer program written whose corresponding code instructions (machine code) and execution path is scripted by your high-level language. Read a JS engines source code, study embedded C, and get back to me as to how suitable you find it for timing deterministic embedded programming. LOL
Types are directly related to memory size allocations.
Study the recent crop of LLVM languages, including some very interesting ones like LuaJIT, which should be right up your alley, and note the role Garbage Collection (check the Boehm implementation, for example) plays in many of the object-oriented languages, as well as Go.
Look at the actual assembler instructions you require a computer to perform as a result of your high level specification.
I am NOT speaking gibberish.
I agree that dynamic languages are considered easier to program in.
When speaking of programming languages, they are not all on the same level. One cannot say "oh assembler is fine and all but i prefer lua", as it's like comparing apples and atoms.
there's a reason that you can implement a lisp in c, but that the contrary is not viable nor makes any sense.
(although metaprogramming c with lisp makes a lot of sense :D)
> JS = a single threaded event loop, ON PURPOSE. That directly affected Node.js as an implementation.
That's not a criticism. It's not different to desktop app dev where you try to keep your processing away from the main thread, only it provides an easier interface through async programming. Synchronous = main thread; async = other thread.
Amazingly intuitive model.
> ES6 may have been ratified six years ago, but it's not the target code your front-end build chain spits out
C++14 may have been ratified 7 years ago but it's not the target code your build chain spits out
> Look, I've been programming JS since it was invented...
You're free to write pure assembly, and you don't.
> Regarding dynamic languages on microcontrollers
Python in particular has made this kind of programming mainstream
> Read a JS engines source code, study embedded C, and get back to me as to how suitable you find it for timing deterministic embedded programming. LOL
You're gatekeeping, and that's also your ego. You need to work on that.
> there's a reason that you can implement a lisp in c, but that the contrary is not viable nor makes any sense.
What!? I can build C in Lisp as much as I can build any other language. I parse the syntax, create machine code, and output a binary. How the hell do you think languages are built? How do you think C was built?
Just stop, man. It's not gibberish but it's bullshit.
Hey so can I write a device driver in JavaScript and is it a good language for that? How about my dma controller and python? What am I reading here. Not a comp sci major eh? Pass me something by reference in JavaScript, please
Anything is a “good language for that” if it meets your needs. If you can run the js VM in 128KB of RAM and have decent performance, why not? I guess you would be ok with a Lisp in a microcontroller even though it would also run a VM?
Do you think Arduino would have had any success at all if you had to write C or Assembly to use it?
Do you know what a heap allocation is vs pushing something into the stack?
Do you know what code and bss segments are and what they are for?
This is not about being right or wrong, I just can’t stand to watch total nonsense go unchallenged.
No, you cannot write a hardware device driver in a dynamic language, which is not to preclude code generation approaches, but to point out what low level hardware programming actually consists of: manipulating memory, registers included
1) I did not originate this "is trash" phrase, but replied to a parent comment you had rather excoriate. I said that Javascript is fine for what it was designed for: a single threaded UI event loop in a web browser.
It is NOT good as a high-volume web server, for example.
Http has a request and response cycle and is deliberately stateless such that all data goes out of scope and the entire thing can be deconstructed and, poof, no memory overhead nor leaks. It was designed that way, as a protocol.
2) I saw your comment below. You cannot write device drivers in the language of your choice on any of todays popular operating systems, nor on any embedded devices.
Device drivers must have low level access to things like memory locations and cpu registers. Such things are not exposed to Javascript and not available. This is not even speaking about performance and garbage collection etc.
Look, Javascript is someones computer program. It can be implemented in very little code: here's an example:
https://github.com/cesanta/v7
Languages are not all equal nor do they all function in the same way, and that's not my opinion.
Javascript syntax itself is one thing, and you can certainly feel free to Javascriptify some C++ libraries and make it all look a certain way for specific tasks, while managing things behind the scenes, up to a point... but there is no getting around the fact that SOMEONE and some languages are needed to implement low level systems functionality.
the power of Cython or the Python C FFI is that it allows you to script/glue modular native code.
You then state "C++14 may have been ratified 7 years ago but it's not the target code your build chain spits out"
no, a C++ COMPILER spits out assembler code that then gets assembled and linked into an executable.
The C++ or C code corresponds directly to a given set of assembler instructions which correspond directly to CPU instructions.
You claim that Python programming of microcontrollers is mainstream, but this is not true nor possible. Python SCRIPTING of code modules (that cannot be written in Python) is certainly one way to assemble a system from pre-built legos.
If you refer to knowing what I'm talking about as gatekeeping and egoism, might I suggest that you insist less forcefully in the correctness of incorrect things you state? we could be done with this spat in short order if YOU would refrain from speaking falsehoods. lies.untrue things.
I look forward to your lisp c compiler. make sure that it's 100% lisp from the bottom up, or I'll consider you're having ceded my point. Consider that the lisp you author in has a garbage collection system that lisp cannot have written originally, nor has any semantics for the underlying memory structures of, but hey, I guess if one is committed to pretending that all languages are equal for all tasks, who am I to question ones self-identification with a given language.
> It is NOT good as a high-volume web server, for example
You couldn’t have picked a worse example - your CS major seems to be needing a refresh. NodeJS came to be precisely because V8, single threaded and using an event loop, was GREAT at a high volume web servers. It massively reduced the overhead vs multi-process or thread based web servers and absolutely dominated performance benchmarks and concurrency. We started playing with 1M concurrent connections while you might barely get 100 on Apache a few years earlier. There were other async servers at the time (Tornado, Puma, Netty..) but the async-by-default ecosystem in node was a unique advantage.
Fast forward to today, it’s not an accident that the majority of high-performance web servers now are asynchronous and/or using cooperative multitasking (or even libuv directly, a spin-off of nodejs development): VertX, Actix, h2o, Jetty, go with goroutines, etc. It’s a much more efficient model.
1) you confuse me with a CS major on another thread. pick the right feud please.
2) "you couldn't have picked a worse example" HAAAA!
You are wrong. wrong wrong.
A) Do you even know what a memory leak IS and why/how it occurs?
B) Did you understand what I said regarding stack allocation and out-of-scope equals "memory gone" and how that fundamentally differs from heap-based allocation as ALL JS OBJECTS ARE!??? you are wasting my time, friend.
you are straight up copying marketing lines from node.js with no apparent understand of what a single threaded event loop even is! (it is a gui system. almost all windows-style apps since 199whatever have an event loops as ONE of it's threads. Open X-code or Visual Studio and make a generic desktop app, and add a button and make it's click handler call a method of something or other. Check a moderately complex audio visual production application for clues on just how many threads one uses and for what purposes are they separate threads, etc.)
You then mention VERTX AND GOROUTINES RIGHT AFTER EXTOLLING THE VIRTUES OF A SINGLE THREADED EVENT LOOP. GO LOOK UP WHAT THOSE 2 SPECIFIC TECHNOLOGIES USE AND DO, VERSUS A SINGLE THREADED EVENT LOOP.
Do note why single core limits exist for single hardware thread execution worlds and stop saying that interleaving tasks on a single execution core is superior to architecting synchronized activity across all cores, and do note that you are primarily referring to CRUD web-dev while positing very erm controversial positions on programming language use-cases.
Node JS is a terrible high-volume web server as all of the alleged virtues you extol are workarounds from the single threaded execution model of what was never designed to be a server language.
I will say it again: HTTP is a stateless protocol involving a request (method call) and response (what it returns)
it then goes out of scope and disappears. no memory leaks. no heap memory allocation. no malloc. no new, etc. it's just poof gone. got it? this was done on purpose by smart computer people. If you want to run each request as a separate OS process, don't blame HTTP, but the primitives were designed for efficiency.
please DO look up what heap vs stack allocation is.
please DO look up what a register vm vs a stack vm is.
please DO not confuse scripting or glue code with machine code, as the machine code of your javascript program is precisely the javascript runtime with it's execution paths being puppeted by your script language. you are literally pushing someone elses buttons and calling it computer programming. no offense, that's why it's a high level language not a low one.
when you resort to reductio ad absurdum suggesting assembler as the tool for all programming, you are not engaging with anything I have said or written here, as tools have purposes, not everything is a hammer/nail
in a way, you are not wrong, as a macro-assembler, or C or C++ or Rust or Zig or Nim etc (non garbage collected compiled language capable of outputting machine code as the final target) is the next level up from asm.
Why do you suppose that Chrome is not written in JS but rather largely in C++?
Wait, where do memory leaks come in and what the hell fo they have to do with the subject at hand? I was talking about it’s fit for web servers, not embedded development. I’m disputing very specific comments you have made. You completely ignored what I said, and now accuse me of “copying marketing lines” and not knowing what an event loop is? Really? Is this how you win arguments?
I don’t know what you’re excited about yelling in caps - VertX uses and event loop. Goroutines are cooperative scheduling. Yes, they can also coordinate over multiple threads (guess what, node can too) but the underlying architecture for processing requests is the same.
> Node JS is a terrible high-volume web server
Again, why would that be? Node was invented precisely to be a high performance server. It’s literally it’s purpose, and it delivers. Check out any benchmarks like TechEmpower and guess which platforms you’ll find near the top. I’m not saying it’s the best choice but just stating facts. Nothing else to say here - you obviously have strong opinions but zero hands-on knowledge on this area.
> That directly affected Node.js as an implementation.
It didn’t “affect” node, it was the whole reason it came to exist: its cooperative multitasking was a good way to tackle concurrency (remember c10k), and V8 was available and easily embeddable. Without the event loop there would have been no reason to choose JS.
Svelte on the other hand is as optimized as possible - update the data, modify the corresponding DOM pieces directly. There is no realistic use case where you’d need to spread an update over multiple frames.