Emacs is my preferred text editor. I don’t use old-fashioned text editors as much as I used to, because I often need more specialized tools. I use IDEs for various programming languages and other things when producing high quality documents. And yet, I often wish I could subsume these with a tool that had the basic goodness of emacs.
I love the ease of customization of Emacs and other text editors, but they're just plain dumb when it comes to knowing programming languages.
Me thinks you haven't used emacs as much as "other text editors." There are very few features that people "wish" emacs had, that it doesn't actually have.
Specifically, language recognition is not just regexes in emacs.
Perhaps this is not the right forum but does anyone know of a good emacs mode for jump-to-definition in Python? I've used ctags and jedi but haven't been able to configure anything as awesome as the Python plugin for IntelliJ (same as PyCharm). To implement it, it would require a combination of static analysis and on-the-fly interpretation, given Python's duck typing. If emacs had this, I would use emacs all the time.
I use jedi.el along with virtualenv-wrapper which does jump to definition perfectly fine ime. But keep an eye for open sourcegraph's mode[0], they are going incorporate python soon AFAIU.
One of the authors of srclib here. Python has been incorporated (and should be installed if you update srclib and run the toolchain install script). The website hasn't been updated to reflect this, however. Let us know if you run into any issues!
That looks like it should be ridiculously easy to do. Feels like it would be annoying pretty quickly, though. (I typically have my computer completely muted...)
> Specifically, language recognition is not just regexes in emacs.
I know there's Semantic [1], but do the typical major modes actually use it? The first line of Semantic's manual says: Ordinarily, Emacs uses regular expressions (and syntax tables) to analyze source code for purposes such as syntax highlighting.
Yes, tit the default mode is through regexs, and most of the modes use it.
But I think the OP's point was you are not limited by it, besides semantic (which I haven't never bothered to setup, there is js2-mode[0] as examples of modes that don't use regexps to operate on the language. There is even js2-refactor[1] built on top of it. You can read about js2-mode origin story here[2], and you would see that lack of threads in elisp hindered its development.
Apologies for not responding earlier. As indicated in a sibling post; yes, I believe most language recognition is done with the old style. Mainly because it is fast and works for the majority of use cases, though, and not because it is required to be that way.
I understand, on principle, why this is not ideal. In practice, I have trouble disagreeing with it. I do find autocomplete nice; though, I have also found that in the instances where I'm having to rely on autocomplete, I'd have been better off using the documentation of whatever I'm doing for a bit to actually have solid grounding before embarking on code.
My point was exactly as the sibling said, that this is by no means all emacs can do.
The problem with emacs is that while emacs is indeed long lived, plugins often have a short life-span. I've tried on a couple of occasions to find a good C++11 compatible plug-in but failed. I found one which used libclang, but didn't work with the latest version of clang.
The author (and others who use desktop Linux) can't be happy with his personal choice of desktop. Instead he's bitter and angry that others don't make the same choice that he does. That's way too common in many facets of life these days.
There are many factors why desktop Linux didn't take off. One is the whole Gnome/GTK+/KDE/Qt debacle. Many know the details, but with limited resources and not being radical enough in your designs, then there had to be more collaboration and not division (Gnome vs KDE).
Distros were similar enough to not be very differential, but incompatible enough to make support a nightmare for ISVs.
The other direction that could have been taken is a whole lot more experimentation with radical designs. Trying to be better than Windows was always going to be a losing strategy. Just don't be Windows.
I guess there is some redemption in Android, but I think the diehards will never accept Android as a real desktop Linux.
Interesting that 'desktop' success is relative to android. If you were going to design an OS for phones and pads, would a sane person have come up with android?
Seems like a shoehorned solution, a phyric victory.
I really like Dylan, but it has a huge problem that never gets discussed - verbosity. The syntax is entirely too verbose for a modern language. My suggestion would be to first complete the Intellij plugin and then actually change the syntax so it can compete with the scripting languages.
I'm loving the .NET framework as a career. When it comes down to it we have 2 major choices to choose from - Java and .NET framework, with a smattering of Python around.
Given those two choices I'll take C# any day over Java. Where Java has it right is in the ecosystem. It's more mature for obvious reasons and has great alternative language communities - Clojure and Scala. We have F#, which is great.
But for day to programming, I don't think Java and Intellij beats Visual Studio and Resharper. You can become very productive with VS/ReSharper and C#.
I have a feeling the only thing that will stop the obesity epidemic is heavy food regulation which people will fight tooth and nail against
People rightfully should fight against that heavy regulation. You don't want to go down that road. Whatever unhealthy dietary choices that people are making is a much better alternative to government regulating people's diet. Think about it for a while.
Regulation is the reason you can buy food and feel safe that it won't poison you. It's why you can buy a house and feel safe that the ceiling won't collapse on top of you. It's why you can visit a cinema and feel safe that there are enough fire exits and alarms and a sensible evacuation plan.
All of these regulations aren't in place just because officious bureaucrats wanted to clog up the smooth workings of a free, capitalist society, they exist because historically, when they weren't, people died. For proof, go and read about some of the nightclub and theatre fires that happened a hundred years ago, in which hundreds of people burned to death.
When there's a immediate link between malfeasance and harm, it's easy to see that the government should step in, introducing building codes and hygiene standards to ensure it can't happen again. When the harm is delayed, the link feels more tenuous, even if it's really not. Companies that pollute are contributing to potentially catastrophic disruption of the biosphere and global warming, but it doesn't happen overnight, so people treat it as less wrong than building a nightclub with no fire exits. It isn't.
Likewise, food companies who aggressively promote nutritionally dangerous foodstuffs cereals at children, while promoting them as healthy, are doing harm. They're doing it knowingly, and they're paying to distort scientific and political processes in order to keep doing it.
It's easy to trumpet individual choice as all important, but reality is not an individualist pipe dream. The average person is not well informed about dietary science and never will be, and many children cannot make a choice at all, let alone an informed one. In the face of the wealth and marketing power of large food companies, people have no chance on their own, and they levels of obesity in modern societies are clear proof of that.
Food regulation isn't about the government telling people what they can eat. It's about the government telling food companies that they can't produce food that's dangerous, in the long term as well as the short term. Just like the government tells companies they can't produce cars that fly apart on the highway, or buildings that fall down in a strong wind.
Regulation of dangerous business practices is exactly what government should be doing it. It's the reason why all the other nonsense governments do is worth putting up with. It protects people from irresponsible companies, and it protects responsible companies from being undercut by irresponsible companies.
It's going in the wrong direction. Instead of empowering people to make good decisions, you're advocating putting a government gun to the heads of people to make them make healthy choices.
So are you going to throw more people in prison for the illegal sugar trade?
It never ceases amaze me how many people on HN actually advocate these draconian, statist policies. Stop hating on your fellow man.
No, I'll repeat what I already said: You don't regulate what people can eat, you regulate what food companies can sell. You don't allow them to sell dangerous food. That isn't draconian statism, it's sensible regulation.