I actually used Geany as my main editor for Ruby on Rails and ruby in general.
Python has pycharm, Java has intelliJ, but ruby has just RubyMine which doesn't have a community edition and also isn't very good (at least when I tried it like 5-8 years ago).
Geany was nice because while it didn't have autocomplete for anything but just text symbols, it did have enough Project-related features that it matched how I liked to view my files as a directory tree rooted at a project dir. And the syntax highlighting was good and so on.
I ended up switching to vscode (well, vscodium, anyway) after I used vscode at work. Maybe I should check up on Geany again as of this big 2.0 release. I'd like to use an actually-free editor, though I settle for vscodium-style "free" when there's a big delta in productivity and features.
> ruby has just RubyMine which doesn't have a community edition and also isn't very good
I have a great deal of sympathy for RubyMine (and shudder at working for the CLion team, whew) because Ruby isn't doing the IDE author any favors. Given:
- what types are client_email and private_key? they are whatever type they're called with lolol
- the symbol Google::Auth::ServiceAccountCredentials just materializes; was it required in some containing context and thus is in scope by _this_ required file? are those symbols visible in every context from one of the various Gemfile lines? a hard-core rubyist knows
- where did the symbol StringIO come from? well, from require 'stringio' obviously, which is on .. err, which line exactly? I guess that lends weight to the 'this file is obviously running as a child context of some other file' theory
I think half of it is the culture of Rubyists and half of it is "productivity hacks" of "if it runs, then it must be correct"
I also recognize that I'm very clearly a static typing snob, and firmly in the camp of "please import symbols you use," but that doesn't stop me from having a great deal of sympathy for anyone who has to implement an IDE for such a monkey-patch friendly language
> I also recognize that I'm very clearly a static typing snob
Honestly I'm right with you. I was complaining in another ruby thread [0] the other day about how opaque ruby is in terms of context around what's actually happening and where things come from in a given block of code.
I'm about a year into working at a Rails shop and it's been a wild ride coming from a background of Swift/C++/Python. There's some cool syntax niceties in Ruby around writing functional blocks which I really like, but beyond that I find myself just endlessly frustrated with it as a tool. A lot of the senior folk at my org swear by ruby and know enough of Rails to have a good intuition about what's going on and how the system is organized, but for someone new to the whole enchilada it's so hard to find mental purchase in any given chunk of code.
> "if it runs, then it must be correct"
this has described the root of so many of the bugs I've had to chase down, holy crap.
How was indentation on Ruby code? I made a lisp plugin for Geany and the only way to customize the indentation was to install a keystroke handler for the enter key, which I found very strange coming from the vim world where there are specific hooks just for indentation.
Interesting, you went from vim where you were a power user enough to write a plugin to Geany? I've always had a warm spot for Geany but I just can't imagine the loss it would be for me to lose vim.
I did not go to Geany from vim; there were many people complaining about "having to learn Emacs to get a decent CL IDE" so I used Geany as the start for a more traditional IDE for Lisp.
Not necessarily. Once you are used to your editor opening in a few milliseconds, everything else feels like ages. I would argue the opposite: we have gotten used to slow software being the norm.
Cudos to trying again. Sometimes our memories fail us.
Was it of sufficient speed for your needs? It certainly takes longer to open than a couple of milliseconds. But I'm not aware of any GUI application that does.
Not that I would actually notice anyhow, given display latency of ~16ms at 60 Hz anyways :D
It's (mostly) snappy once it's started. Which takes something like 5-10 seconds on my PCs. But it keeps previous files in tabs over restart. And with each new geany installation, snappiness deteriorates soon and tabs accumulate until i have a clean up session. Might be an user issue, but this is my primary geany experience.
What are you talking about?
I've never seen that. Many years and many machines.
You've got something weird misconfigured somewhere like a plugin trying to do a failing dns lookup or something.
However I have seen mystery hangs in general, which can happen to almost anything.
I had a machine one time where a self-built version of midnight commander would always hang for several seconds on startup. Never saw that before or since. You can not say "mc takes something like 5-10 seconds to start up" even though it did on that machine that time.
I don't remember the details, but it turned out to be some combination of environment/context ie a particular terminal on a particular client sshing to a particular server where mc itself was, env variables, and/or setting in a mc config file. Might have been something to do with locale or TERM, or.. . I really have no idea anymore.
But the hang was fixed by hunting down the config problem, and I've never seen it before that, nor since.
One of the releases from a few years (or months) back had this issue of slow startup whenever a certain number of files was opened. I experienced this a few months ago while installing the version included in Debian stable.
Following Geany updates fixed the issue, as far as I remember.
If you've got tens of files on an old machine that's probably to be expected. It's efficient with large files, written in C, and on a modern computer could open that many easily. My six year old laptop opens ten files from an encrypted drive in 2ish seconds.
I suppose it could load the interface first, then load the files, then parse and highlight them after the window is up, but don't feel like it would make a lot of difference until its done.
You may find projects useful. Can open the dozen files for one project, then close it, then open the next group from another project. Instead of every file you potentially might want to work on.
Ah, I missed that sentence. But in cases like this, where a project hasn't appeared much on HN. it can be better to have the project home page be the top link, since most of the audience needs a general (re)introduction and release notes are usually quite specialized.
I'm not very knowledgeable about Vi, I had someone else configure it for me as a pager a while ago. I used to use it (as a pager) to work with database dumps which were typically multiple Gigabytes big. It's obviously slow to do certain things, compared to smaller files, but that's to be expected as simply seeking through these files would take time.
As for Emacs, I either use Hexl mode or I used to use a modified version of this: https://github.com/mbriggs/emacs-pager but cannot find a source at the moment.
But, even if not used as a pager, Gigabyte file will work. That's still far from the breaking point. Not as snappy, and if you have a Python source file that's Gigabyte big you will have to disable Python mode, for example. But with logs / database dumps that's usually not a problem.
As an example. Neovim is great, but treesitter is struggling with big files. That means that commonly used neovim configurations don't work well with big files at all (and I need to run in clean/no config mode to open huge logfiles.)
True and this is a feature I love. Except if you go too big, it seems to crash. I'm yet to work out what the limit is but when I'm unsure I reach for glogg.
The only editor I've found that reliably does that is mousepad. (I believe it's from xfce4) It's also really fast to start like Notepad++. Though it is more like windows Notepad in features than a bigger editor/ide.
Featherpad also does so, by enabling the option "Start with files of last window".
Also:
* instead of giving an error message when it lacks permission to read a file (like mousepad) it instead prompts for credentials and attempts to open the file.
* it lets you put the tabs on either side. Or use a panel with a list of open files instead of tabs ("split mode").
Featherpad does have a qt dependency, which may be a dealbreaker for some.
This is sad. I so much need a lightweight editor to replace Notepad++. There are so many annoying things with NPP including search, find and file explorer view. Also multi carret handling is much better in some other tools. But none of them are as lightweight or fast as NPP.
Sublime is not as fast. My main problem was with large files and files with weird encoding schemes which I can usually safely edit in NPP but not in sublime
This is... bizarre? The two most well-developed, feature-rich while also very small editors are Vi(m) and Emacs. Notepad++ doesn't hold a candle to either one of those, and you somehow missed them? :|
Also, what does it mean for the text editor to be fast? What speed do you measure?
Emacs, just the binary is 8 MB in my distro package. You can, of course make it smaller if you want. There are also miniature versions of it, like MicroEmacs, which would be even smaller.
But, even if you add a bunch of Emacs Lisp code, that will put you in the lower 3-digit number of Megabytes. Which would be equivalent to a hello-world Electron app after a lot of optimizations.
I use Windows as main OS and I am absolutely not comfortable with using either Vim or Emacs. Caret handling, search and file explorer view is much better in sublime and vs code. But both of them are not as quick for large files and files with weird encoding schemes. NPP is the onlyone which for me has kept the encoding intact even when edit binary-ish files.
Well, to me, the best GUI for the text editor is as little of it as possible... But Emacs can be made to show a lot of buttons and drop-down menus. Very few people would use it like that though. Also, Emacs has decent mouse support, it's just not useful for editing text, so nobody is really using it.
There's a news / blog post about the release that would be nice to link to, but it appears to only be available as a JavaScript pop-up if you click on the news section. Someone did a lot of work to make the page worse.
Used Geany during most of my bachelors (and at least one internship) until I fell down the vim rabbit hole. Still have a soft spot for it even if I have not used it "in anger" in years.
Oh fun! I love Geany and use it as much as I can. I adore its speed, low resource-usage and simplicity.
I hope the plug-in API hasn't changed too much, I have a tiny git plugin [1] I wrote that I hope still builds! Plug: if you think jumping to a known file quickly in a large repo sounds useful, maybe give it a try.
I used to use geany a decade ago on my personal linux laptop. I use kate now for a notepad app, but Sublime for a programming editor, which is ok for its pls support. I'm going to buy a license for it on Monday.
Support for LSP servers is problematic as it relies on async requests/responses as a source of syntax highlighting and other IDE UI updates, which Geany does not support as of yet. It might be a bit easier to add support for tree-sitter plugins.
I admire them for not going shitty electron app path. I don't think it's suitable for serious programming. But it has it's uses like working on a folder with a lot of config files, scripts, etc. Making some casual changes on large projects are perfectly fine too. Nonetheless, I love Geany. Kudos to the Geany team!
I love geany for loose file edits, but I don't use as an IDE. For one thing (perhaps this has changed in the 2.0?) no "proper" split window support; there was a patch implementing it a few years back, but it was refused on religious reasons (read, "not done the way we want it so we're going to do it ourselves instead and in fact never came around to it").
Still, great editor, super fast, and the fact you can easily open a file in your currently open session (and that it supports the <filename>:<line number> convention) makes it super for checking out error message/warnings etc when compiling code that you don't have in an IDE...
I think saying each line is a liability is a bit overly pessimistic. At least, to be consistent you would have to say that every line in the entire code base is a liability. That may be true, but it fails to accurately capture the value of the code in the first place.
Nevertheless, I agree with you that I would not call it religious reasoning. When something is implemented in a way that does not follow existing patterns well, or forges a new path, it can make maintenance much more difficult. Given that the original author is rarely available to help with bugs and other maintenance for the new code, it is very reasonable in my opinion to reject changes that Don't conform well to existing patterns, or do things in a way that the future maintainers would not approve of.
A suggestion for people contributing to open source projects: try as much as possible to follow the existing patterns in the code base. It can be a pain to try to learn the patterns, particularly when you just want to add something simple, but it greatly increases the odds of acceptance, and added value in the future. If you want your code to be appreciated by the maintainers, it needs to look like code they would have written themselves. The best way to determine what that code would look like, is by emulating the patterns of the existing code.
I understand the intent, but this is a really bad take, and honestly an awful vision of what programming is. You write lines of code to solve problems, implement a vision, create a product, improve behaviors or fix bugs. If a line of code goes in this direction, it’s definitely an asset. If a line of code goes against this, it’s a liability.
With your vision, the best program is no program, which can be true when there’s no problem to solve. But the thing is we actually have problems to solve that require lines of code.
Geany is a snappy, simple FLOSS editor with just the right amount of flashier optional features. I use it for almost everything, with micro being a great compliment in terminal situations.
One often forgotten feature is snippets, where you can make custom macros for whatever language you're using.
Glad to see 2.0, it has a fix to something that was bugging me, having my conf files in git was problematic because session info was stored in the same file as general config.
But alas it is just syntax highlighting. Granted it does work pretty well and editor feels snappy, but no compile errors or completions. One can hope..
vim is my ide in fact, use it daily on Linux desktop ,macos,server, no GUI is needed at all.
no neovim for me until it is universally installed everywhere.
it's not installed on servers I do not have sudo rights, vim is everywhere.
its configuration is different from vim if you want to customize, there are quite some learning curve for anything advanced, tried it but vim was working so well and I don't see the point to switch either, at least by far.
It's a term taken from combat sports which refers to the lowest weight class. When a lot of applications market themselves as lightweight, "flyweight" implies that this application is even lighter.
Speaking up to mention:: I do not think open source software gets enough financial support. Geany is a great editor. Consider donating to the organization if you can. https://geany.org/about/donate/
I will try to replace my current intellij setup with it, in a way that is at least comfortable or without losing much productivity, if I can achieve that I will use it and donate them what I pay for the jetbrains license
That is usually my approach, I always prefer open source, if I am using some closed source paid software when I am able to replace it, I donate the amount to the project
I am actually in the market for a IDE, after jetbrains took the rust open source plugin and said fuck all
I'm actually really excited for the Rust IDE. The open source plugin was fine, but honestly pretty weak compared to their other IDEs, and a far cry from what a proper Rust IDE could look like. I'm hoping that with a sustainable funding model specifically for Rust they'll be able to give it more love.
That said, I already pay for an all products pack, so splitting out the IDE doesn't impact me financially at all.
I also pay for all products pack, I just thought that some people worked on that from the community and it would have helped the rust ecosystem as a whole to keep that open plugin
I really tried to use geany but found everything really difficult to do. On windows notepad++ is way easier. I decided to invest some time in vim on Linux.
I always found Geany a real gem among the regular crop of IDEs. (and I did spend quite some time exploring the synaptic app store back in the day)
The level of focus and simplicity is hardly seen among its peers.