But why bother with creating a new language, and duplicating all the features your language already has, in a weird way?
If I want a list of UI items based on an array of some data, I can just do
items.map(item => 〈Item key={item.id} item={item} /〉)
, using the normal map
function that’s already part of the language.
Or I can use a function, e.g. items.map(item => renderItem(item, otherData))
etc.
JSX itself is a very thin layer that translates to normal function calls.
Still better than whatever the hell this is
https://vuejs.org/guide/essentials/template-syntax
The more you scroll down, the worse it gets.
And this too: https://vuejs.org/guide/essentials/list
A new separate language with features that already existed in the original language (and worked with all its tooling, etc.)
But how is Signal going to make enough money to support a massive user base?
Also, the article says
Cathcart responded that WhatApp will not have ads within the inbox or in the “messaging experience.”
So it seems they’re just going to be added to the extra features that most people don’t care about. Of course they could always change their mind, but that seems like a suicide move.
You need to look at this from a practical standpoint.
The vast majority of phone apps are not local-only. They are merely the frontend to services provided by some company - e.g. a Reddit app is really about Reddit the service, a food delivery app is about the service, not the locally running code, etc.
Apple controls what users can and cannot install on devices made by them, but the web and things like PWA are an alternative that would be viable for some portion of these.
You can make a web app that can be added as an icon on the homescreen, can access the camera, location, notifications, storage, authentication (e.g. require fingerprint), etc. It still can’t do everything native apps can do, but it would be good enough for a good portion of popular apps.
But in China, that is not really possible without the government’s approval either, because China requires the same kind of registration and an ICP license for websites, otherwise things will get blocked. Which, even if you could install anything you want on a device, would effectively limit you to purely local-only apps anyway.
Now, there was a paper that instantiated a couple dozen LLMs and had them run a virtual software dev company together which got pretty good results
Dude, you need to take a closer look at that paper you linked, if you consider that “pretty good results”. They have a github repo with screenshots of some of the “products”, which should give you some idea https://github.com/OpenBMB/ChatDev/tree/main/misc .
Not to mention the terrible decision making of the fake company (desktop app you have to download? no web/mobile version? for a virtual board game?)
(Also the paper never even tried to prove its main hypothesis, that all this multi agent song and dance would somehow reduce hallucinations and improve performance. There is a lot of good AI stuff coming out daily, but that particular paper - and the articles reporting on it - was pure garbage.)
True, as of today. On the other hand, future advancements could very easily change that. On the other other hand, people have been saying the same about self driving cars 10 years ago, and while they do basically work, and are coming eventually, progress there has been a lot slower than predicted.
So who knows. Could go either way.
On one hand, this is definitely a gap, on the other hand, you are very unlikely to run into it in practice.
The whole “pass an array/object into some function that will mutate it for you” pattern is not very popular in JS , you are much more likely to encounter code that just gives you a new array as a return value and treats its arguments as read-only.
If you validate your data at the boundaries where it enters your system (e.g. incoming JSON from HTTP responses), TypeScript is plenty good enough for almost all practical uses.
You can always get the Pi Zero 2 W, which is still more capable than the orignal Pi was, and costs even less, even after all these years.
Or the 1 GB version of the Pi 4. For many projects, even that is overkill. Not everyone needs the stuff Pi 5 brings, like dual 4k60 monitors or the PCIe slot.
Just buy whatever your use case requires. The “zero” line has kind of filled that very low cost niche for now.
Clickbait title.
The packages were collectively downloaded 963 times before they were removed. The rogue packages include names like “noblox.js-vps,” “noblox.js-ssh,” and “noblox.js-secure,” and they were distributed across specific version ranges
Is there any indication that anyone actually installed these, other than some bots that auto download all packages and such?
You would have to really go out of your way to get infected by stuff like this.
That being said, there are things npm could do to try to auto-detect “risky” packages (new, similar name to existing projects, few downloads, etc.) and require an additional layer of confirmation, or something like that.
This is exactly the point made in this 2010 article that’s probably one of the things I link to most often in online discussions.
https://whatheco.de/2010/12/07/function-hell/
Also, the real problem with code on the right in OP is all the state mutations made to the arguments passed into the functions.
Not too familiar with golang, but this really could use some sort of builder pattern or something, if you’re going to mutate the object. Or a more functional style with just a pure function mapping an input “order” to output “toppings”, etc.
There are plenty of ways to make the bad design on the right better without stuffing everything into a single function, so the whole premise is a bit of a false dichotomy.
Not like that, lol
Just saying, instead of this monstrosity
CreateOrderRequest(user,
productDetails,
pricingCalculator,
order => order.internalNumber)
Just use
CreateOrderRequest(
user,
...
Putting the first argument on a separate line.
Same if you have an if
using a bunch of and
(one condition per line, first one on a new line instead of same line as the if
) and similar situations.
Yes, people using it as the main messaging app is still preferable to the situation in the US where people on different mobile platforms can’t message each other without bullshit compatibility issues and bubble colors.
At least here it doesn’t matter what platform you’re on - including desktops and the web - and as a result nobody cares.
Of course, the same is true for almost every other messaging service too, and there are better ones out there.
So you have zero evidence that this is actually happening?
If it gives you video from the same channel instantly after blocking, that means nothing, these changes take a while to propagate, YouTube is a distributed system. Give it a few minutes to rebuild the feed and then try.
How are people upvoting this crap?
The main pitch is that you don’t have to spend time and effort with installing and configuring a project for development when onboarding new people to it, or when you want to contribute to someone else’s project etc.
You get a proven, up-to-date “works on my machine” kind of environment that others also use, and you don’t need to “pollute” your host system by installing additional tools necessary for each individual project. Compilation (and other build steps), running the project, running the tests, debugging, IDE configuration (e.g. language servers, linter plugins), etc. all happen inside the container.
I personally don’t find it all that useful for projects I’m working on long-term myself, but it’s nice if you need to check something in someone else’s project which you’re not that familiar with.
I think it was created by the same people as VS Code, and definitely designed around its needs (at least initially), kind of like the Language Server Protocol.
There is some preliminary support in IntelliJ - https://blog.jetbrains.com/idea/2023/06/intellij-idea-2023-2-eap-6/#SupportforDevContainers, but then it wasn’t mentioned in the normal 2023.2 release notes, not sure if they pushed it to a future release or what. Either way, it’s a work in progress there.
Then there are tools like https://devpod.sh/ that also use devcontainters.
Regarding how it’s different from just using compose directly, I think the idea is that you “connect” your IDE to it and it specifies things like extensions (obviously IDE-specific), debuggers and debug configurations, language servers setup, environment to use when you open a terminal into it, etc.
I do think it solves an interesting problem where you’re working on your desktop and decide to move to your laptop and continue working on the same codebase, but don’t want to commit early so you can pull down the changes to your laptop.
You can just push the changes to a different branch and then merge it to your normal feature branch later. Takes like 5 seconds.
VS Code also supports the devcontainter format, where you can get a well-defined fully configured dev environments locally or remotely. It also automatically asks whether you want to use them if the project has a devcontainer.json
file.
So you can get the benefit of a standardized environment without going all-in on cloud.
Trains are expensive to run if you don’t have enough passengers (like in small villages).