Life is too short to give stuff away for free. Monetize wherever possible. Almost everyone who gives away useful software for free burns out and stops doing it.
A lot of people would disagree with this. I don't want to talk ill of anybody here but maybe you should keep an eye on both projects' GitHub issues for a while.
As for a great terminal from (IMO) a genuine nice guy, try wezterm.
(I do infact pick open source software based on how they respond to issues since I am likely to spend time interacting with them.)
He’s writing software for free. Providing full support for hundreds of issues is beyond reasonable. If there’s a breaking bug, it’s understandable if he will investigate, but nobody has time to investigate every single request. I’ve had my fair share of issues on my own projects and some people are too lazy to diagnose their own issues.
Kovid is super responsive and helpful on GitHub issues. His tone is not always friendly, but I guess you have to grow some teeth in todays open source world
> As someone who has only experience with vim and not Emacs, are there any advantages to Emacs or is it just „different“?
As someone who uses both, there are clear advantages to each one. A Vim power-user spending time learning Emacs will not be wasting their time (and vice-versa, of course).
IMO, Vim is slightly faster to use when you want to navigate the file, making changes as you go, while Emacs is slightly better at programmatically automating common tasks.
> I hear this a lot, can you give some concrete examples?
You can get a good example of what is possible by using org mode for a little while.
For example, keystroke <TAB> on an issue marked as TODO moves it to the next state IN-PROGRESS, <TAB> again moves it to the next state DONE and changes the color from red to green, and if you continue <TAB>ing you will cycle through all states.
That's the default 3 states.
If you don't like the default states, at the top of your file you can simply list the state progression in plain text like this:
#+TODO: TODO INVESTIGATING IN-PROGESS BLOCKED | DONE
And now your <TAB>ing will cycle through those states.
Another example of the programmability of Emacs is when editing tables in org mode - it's so painless and intuitive to have text tables with columns all aligned as you move to the next column or row. That's also behaviour that is not hardwired into Emacs, it's simply some sort of hook that's registered when org mode is set up.
As a final example, here's a snippet from my .emacs file:
; Set the postamble for org html export
; %t stands for the title.
; %a stands for the author's name.
; %e stands for the author's email.
; %d stands for the date.
; %c will be replaced by `org-html-creator-string'.
; %v will be replaced by `org-html-validation-link'.
; %T will be replaced by the export time.
; %C will be replaced by the last modification time.
Those are callbacks - you don't get any more programmability than telling the application "call me back when the user requests an export, but only for HTML use these functions".
> I am really curious to know how Emacs and Vim fits in your daily workflow?
I use Vim primarily for writing code and code navigation. I use Emacs primarily for writing text and text navigation (for example, Emacs shortcuts for paragraph formatting and navigation are great (C-u M-q)). Emacs org mode is also great for maintaining tasklists, time-spent on tasks (it calculates that for you using a date-picker), reorganising the task hierarchy, etc.
Vim, even with plugins, doesn't come close to org mode.
I have heard many good things about org-mode.
Question:
- Have you ever used Vimwiki? I know it is no org-mode, but even I am a regular notetaker and I never felt it really lacked in anything, but yeah, it doesn't have task planning.
Well, Emacs is incredibly powerful, but it is just too much work to do anything, even regarding keystrokes and all the chords you have to remember. I have worked on Emacs too, but sometimes it is just not worth investing so much time and energy in Emacs if you can spend much fewer time in Vim and get a lot more done.
VimScript is aweful, sure, but with Neovim Lua support, you can do a lot more in a decent and fast language. Emacs has some great plugins and good LSP support (Also, available in Neovim/Vim and also native treesitter support too). There is barely anything in Emacs at this moment that really justifies investing so much time into it.
Even with this post, as an experienced Vimmer, I could basically do everything they are doing here, without installing any plugin and remembering all those obscure keystrokes.
Also, Emacs folks downvoting this, tell me if my logic is wrong, you will come up with NADA.
> Even with this post, as an experienced Vimmer, I could basically do everything they are doing here, without installing any plugin and remembering all those obscure keystrokes.
I thought so too[1], but I am willing to give the blog author the benefit of the doubt (that Avy is the fastest way). It also seems to me that with Avy the process is a little more uniform and consistent than the way I would do it in Vim (only a little, though).
[1] In Vim, I would do the Filter->Select->Act cycle as *'/<pattern>qq<modify-pattern><esc>q'* and then use 'n@q' for each modification, or 'nn' to skip to the next modification.
For simple patterns (for example, adding a parameter to a function call) I won't even bother with the recording, I'll do a flurry of 'n.' or 'nn'.
Well, It is more of a design problem than a Django template problem. If you add more and more logic in the template itself instead of dealing with it in the views context or templatetags, you are bound to find yourself in such position that you have very hard to test code.
The tooling is fine and almost always lets you know where you are breaking stuff. Also, comparing react tooling with it is not fair, it is a much modern ecosystem that has pitfalls of its own.
I have been writing Django professionally for 10 years and React + Django together for 4+ years, so I really know what I am talking about here.
> Flashing a rom on google-branded phones is so simple, a non-tech person can follow a 5min youtube video to do it
Lol, this reeks of how little you understand how much a non-tech person is capable of. A vast majority of Android users won't bother or know how to flash the ROM.
Move off Rails now GitHub, is clearly not working for you. It took you this far, now go move to something that doesn't sh*ts the bed twice every month.
Rails is (apparently still) a popular target for haters, but for projects at Github's scale it's rarely a code logic/framework-level blunder that's taking the service down. It's generally a cascade of failures in things like multiple database systems, auto-scaling, dns/caching, etc.
There are projects bigger than GitHub that do all of these things and still doesn't fail as much as GitHub. Honestly, both of us speculating. You can't say for sure if it's not Rails and I can't say if it's not anything else.
> for projects at Github's scale it's rarely a code logic/framework-level blunder that's taking the service down. It's generally a cascade of failures in things like multiple database systems, auto-scaling, dns/caching, etc.
This is just guessing. You can't honestly tell what is causing the issue.
Not guessing, postmortems are regularly posted on this site and elsewhere. These kinds of failures are generally not someone using some "magic" (or whatever other pejorative term) feature of a framework.
Flask (python) or even CodeIgniter (php) are my frameworks of choice for this sort of thing. They may be a bit old and organizing a large project could be difficult but nothing can beat them on performance!
Indeed. Anything that has so much magic in it is bound to bite you in the a. There will be a time when there is so much code and magic that no one really understands the system well.
Twitter too was on Rails in the initial days which helped it took off, and then realised they need to move to JVM(Scala) to scaled and they have been performing brilliantly since then.
Now, that MS has bought them, why don't they use the brilliant tech MS has (.NET, .NET Core) and be more reliable?
Python just doesn’t scale. Th language isn’t typed enough to be safe in a large program. Eventually you will iterate over a string or access an attribute of None. And the runtime is too slow. SRE at Google years ago banned new projects in python because the incredible slowness of the tools was extending the time to repair outages.