If you make an app with bad tools, you will produce a bad app. Unlike in other areas like carpentry, the tools you use to build software generally become part of the software, libraries being the obvious example. If you use an unreliable library, your app will be unreliable. If you use an overcomplicated library, you app's implementation will probably be overcomplicated.
Of course modern tools produced by modern scum are universally horrible. So what are the options? You can use old tools like Mercurial, Bash, and Java 8. You can look for tools produced outside of depraved modern western culture like Nginx (made in Russia). Or you can write your own tools, as I did with my goodjava library, Luan, and Mercurial hosting. I developed the tools I needed for my commercial websites. But now I am working on FreedIt. So now I will describe two recent sagas of searching for tools for FreedIt.
I need a file uploading service. I found 4 options: upload.io, Filestack, Simple File Upload, and Uploadcare. upload.io uses the most modern Javascript in their documentation. So it was unsurprising that I couldn't even register on their pathetic site. I got some "registration failed error" with no explanation. So obviously I ruled them out. Next was Filestack. I used their server-side API to upload a "t.txt" file but when I tried the link in the browser it downloaded the file instead of just showing it to me. This is presumably because they return a pointless "content-disposition" HTTP header. I contacted their support about this and got a moronic response. So much for them. Next is Simple File Upload. This is actually pretty reasonable, written by one woman. This is not modern code but isn't flexible enough. I emailed her telling her what is needed but I can't wait for her to do it. And finally Uploadcare. This was started in Russia and then moved to the depraved West. This means that the core code is sound and everything added afterwards is crap. They have a Javascript widget that they push which is a horrible nightmare. But they also have server-side API meant for server to server calls that is okay. I hijacked this API by calling it directly from ajax so that I can do file uploading right from the browser. See this and view source. So in the end, this is a case of using a tool developed outside of depraved modern western culture.
The second saga was looking for a WYSIWYG web editor which I need to let users write posts. Here there are numerous options including TinyMCE, CKEditor, Froala, Quill, tiptap, lexical, ProseMirror, Trix, and summernote. I can assure you that they are all horrible modern crap. The least bad is TinyMCE and I spent a week or two trying to get it to work. But it is a bloated pig that abstracts away the underlying DOM under layers of crap. For example, when I get a callback for a modal dialog, I get passed some API object that doesn't give me access to the actual dialog itself. Typical modern scum design. Finally I gave up on all the modern crap and found an old project SCEditor. It is poorly supported and full of bugs, but the code itself is tolerable and I can read it. So I forked it and I will work on making it into something usable.
These two examples are general tools that I happen to need for FreedIt, but other apps like SaidIt could use it too. They illustrate the fundamental need to find or develop good tools. I made the site Reactionary Software to promote this goal.
But of course there is no interest. I just checked and humanity currently consists of 7.96 billion worthless pieces of shit. None of them are interested in good software. None of them (except me) are developing good tools. And knowing this helps me set my priorities. My top priority has to be Arkianism since this is the only means of producing people who aren't shit. Without people who aren't shit, nothing else matters. My second priority is business since money is generally useful. FreedIt is last, a background project to entertain me when I am bored. I don't see much point in developing a useful app for human shit.
[–][deleted] 2 insightful - 2 fun2 insightful - 1 fun3 insightful - 1 fun3 insightful - 2 fun - (4 children)
[–]fschmidt[S] 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 0 fun2 insightful - 1 fun - (3 children)
[–][deleted] 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 0 fun2 insightful - 1 fun - (2 children)
[–]fschmidt[S] 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 0 fun2 insightful - 1 fun - (1 child)
[–][deleted] 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 0 fun2 insightful - 1 fun - (0 children)
[–]raven9 1 insightful - 2 fun1 insightful - 1 fun2 insightful - 1 fun2 insightful - 2 fun - (0 children)