Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)HA
Posts
30
Comments
140
Joined
3 mo. ago

  • A big part of the changed software job market in the US is caused by the rise of interest rates, and in consequence a large part of high-risk venture capital money drying up. This was finsncing a lot of start-ups without any solid product or business model. And, this began very clearly before the AI hype.

    The trope that AI is actually replacing jobs is a lie that AI companies want you to believe.

  • I don't get that people constantly complain that the Guix project does not distributes or actively supports distribution of binary, propietary software. That is like complaining that Apple does not sells their Laptop with Linux, Microsoft does not sells Google's Chromebooks, or that Amazon does not distribute free eBooks from project Gutenberg, ScienceHub or O'Reilly.

    And users can of course use the nonguix channel to get their non-free firmware or whatever, but they should not complain and demand that volunteers of other projects do more unpaid work. Instead, they should donate money or volunteer do do it themselves.

    But guess what? I think these complaints come to a good part from companies which want to sell their proprietary software. Valve and Steams show that a company can very well sell software for Linux, with mutual benefit, but not by freeloading on volunteer work.

    And one more thing, Guix allows to do exactly what Flatpaks etc. promise: Any company, as well as any lonely coder, team of scientists, or small FLOSS project, can build their own packages founded on a stable Guix base system, with libraries and everything, binary or from source, and distribute it from their own website in a company channel - just like any Emacs user can distribute his own, self-written Emacs extensions from a Web page. And thanks to the portability of the Guix package manager, this software can be installed on any Linux system, resting on a fully reproducible base.

  • If you walk around in my city and open your eyes, you will see that half of the bars and restaurants are closed because there is a shortage of even unskilled staff and restaurants didn't pay enough to people. They now work in other sectors.

    And yes, software developers are leaving jobs with unreasonable demands and shitty work conditions. Last not least because conserving mental health is more important. Go, for exanple, to the news.ycombinators.com forum and just search for the keyword "burnout". That's becoming a massive problem for companies because rising complexity is not matched by adequate organizational practices.

    And AI is not going to help with that - it is already massively increasing technical debt.

  • It's the Dunning-Kruger effect.

    And it's fostered by an massive amount of spam and astroturfing coming from "AI" companies, lying that LLMs are good at this or that. Sure, algorithms like neural networks can recognize patterns. Algorithms like backtracking can play chess or solve or transform algebraic equations. But these are not LLMs and LLMs will not and can not replace software engineering.

    Sure, companies want to pay less for programming. But they don't pay for software developers to generate some gibberish in source code syntax, they need working code. And this is why software engineers and good programmers will not only remain scarce but will become even shorter in supply.

    And companies that don't pay six-figure salaries to developers will find that experienced developers will flat out refuse to work on AI-generated codebases, because they are unmaintainable and lead to burnout and brain rot.

  • The early stages of a project is exactly where you should really think hard and long about what exactly you do want to achieve, what qualities you want the software to have, what are the detailed requirements, how you test them, and how the UI should look like. And from that, you derive the architecture.

    AI is fucking useless at all of that.

    In all complex planned activities, laying the right groundwork and foundations is essential for success. Software engineering is no different. You won't order a bricklayer apprentice to draw the plan for a new house.

    And if your difficulty is in lacking detailed knowledge of a programming language, it might be - depending on the case ! - the best approach to write a first prototype in a language you know well, so that your head is free to think about the concerns listed in paragraph 1.

  • The average coder is a junior, due to the explosive growth of the field (similar as in some fast-growing nations the average age is very young). Thus what is average is far below what good code is.

    On top of that, good code cannot be automatically identified by algorithms. Some very good codebases might look like bad at a superficial level. For example the code base of LMDB is very diffetent from what common style guidelines suggest, but it is actually a masterpiece which is widely used. And vice versa, it is not difficult to make crappy code look pretty.

  • When did you last time decide to buy a car that barely drives?

    And another thing, there are some tech companies that operate very short-term, like typical social media start-ups of which about 95% go bust within two years. But a lot of computing is very long term with code bases that are developed over many years.

    The world only needs so many shopping list apps - and there exist enough of them that writing one is not profitable.

  • People seem to think that the development speed of any larger and more complex software depends on the speed the wizards can type in code.

    Spoiler: This is not the case. Even if a project is a mere 50000 lines long, one is the solo developer, and one has a pretty good or even expert domain knowledge, one spends the mayor part of the time thinking, perhaps looking up documentation, or talking with people, and the key on the keyboard which is most used doesn't need a Dvorak layout, bevause it is the "delete" key. In fact, you don't need yo know touch-typing to be a good programmer, what you need is to think clearly and logically and be able to weight many different options by a variety of complex goals.

    Which LLMs can't.

  • Well, sometimes I think the web is flooded with advertising an spam praising AI. For these companies, it makes perfect sense because billions of dollars has been spent at these companies and they are trying to cash in before the tides might turn.

    But do you know what is puzzling (and you do have a point here)? Many posts that defend AI do not engage in logical argumentation but they argue beside the point, appeal to emotions or short-circuited argumentation that "new" always equals "better", or claiming that AI is useful for coding as long as the code is not complex (compare that to the objection that mathematics is simple as long it is not complex, which is a red herring and a laughable argument). So, many thanks for you pointing out the above points and giving in few words a bunch of examples which underline that one has to think carefully about this topic!

  • If you like screen or tmux, you might like a tiling window manager like i3 or sway, or GNOME with paperwm extension. It can have real advantages for older folks (like me) which don't have perfect vision any more, because it is much more conservative with screen space. After a few days learning, it becomes also really fast to switch windows and desktops. This is not black-or-white: The desktop WMs do have keyboard shortcuts and windows layouts which mimick tiling WMs, and tiling WMs may have a few desktop features. The former are a bit more convenient and easy for beginners, while the latter are blazingly fast.

  • For me, this result is also not too surprising:

    1. If allowing / using Undefined Behavior (UB) would allow for systematically better optimizations, Rust programs would be systematically slower than C or C++ programs, since Rust does not allow UB. But this is not the case. Rather, sometimes Rust programs are faster, and sometimes C/CC++ programs. A good example is the Debian Benchmark Game Comparison.
    2. Now, one could argue that in the cases where C/C++ programs turned out to be faster than Rust programs, that at least im these cases exploiting UB gave an advantage. But, if you examine these programs im the Debian benchmark game (or in other places), this is not the case either. They do not rely on clever compiler optimizations based on assumptioms around UB. Instead, they make heavy use of compiler and SIMD intrinsics, manual vectorization, inline assembly, manual loop unrolling, and in general micro-managing what the CPU does. In fact, these implementations are long and complex and not at all idiomatic C/C++ code.
    3. Thirdly, one could say that while these benchmark examples are not idiomatic C code, one at times needs that specific capability to fall back to things like inline assembly, and that this is a characteristic capability of C snd C++.

    Well, Rust supports inline assembly as well, though it is rarely used.

  • You can legally buy second-market OEM licenses. They are not that expensive, and do not expire. And, older versions of Windows are much slimmer and boot much faster, though it is not a good idea to connect them to the Internet - instead, one would block connections between VM and Internet. Which is anyway much better from a privacy perspective.

  • Another big plus of that approach: If your laptop or PC breaks, you can just move the VM image with Windows exactly like any other file you have backed up (you do backups, don't you?) to the new hardware and use it as before. This esoecially breaks the problem of forced OS upgrades if the new hardware does not support the old windows version, or you do not have the installer and license keys any more, but the new Windows version does not support your old documents, media formats, or pheriperals like scanners.

    Also, if you modify your Windows install and it might break, you can just make a snapshot of the VM image - which is a copy of a file - and restore it when needed.

  • A few more thoughts here:

    • for a first Distribution, Ubuntu is fine, too. Also, you could ask people arounf you what they know best und whether they like to help you. For example, Debian is a bit harder to install but is rock solid once it runs.
    • if you are concerned about security, you should practice a strict separation between trusted software installed by you, and untrusted data presented to you via web, mail or Internet. Never run untrusted code. Windows blurs that line and this is fatal.
    • In respect to hardware support: Most standard PC hardware will work very well with Linux, even old scanners that have no more Windows driver support. NVidia is the bad exception, and the bad rap is still justified because of Wayland, the new graphics display server. If you are not really poor you might consider to buy something better. The hardware support landscape is different for laptops. Here, refurbished Lenovo Thinkpad or Dell laptops are first choice, and also best value for the money.