Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Geany 2.0 – Flyweight IDE (geany.org)
240 points by conductor on Oct 20, 2023 | hide | past | favorite | 101 comments


Congrats for the 2.0 release!

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.


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:

https://gitlab.com/gitlab-org/gitlab/-/blob/v16.5.0-ee/lib/g...

- 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.

[0]: https://news.ycombinator.com/item?id=37939011


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.


LispWorks and Allegro Common Lisp are the decent CL IDE.


Someone who is too much of a dilettante to learn Emacs is almost certainly too much of one to pay for an IDE.


It's software i really want to like. Unfortunately, the long start-up time makes me more often than not use something else.


Your computer is not as fast as the computers of the people who disagree with you.


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.


Geany does in fact open in milliseconds. By visual comparison, I can't measure a difference in startup speed compared to sublime text.


edit: I've tried Geany again and it's way faster than what I remember.


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


Actually I think within a second is fine. Either my memory is failing me or it has been optimised. Probably the former.


It's fast enough on my system that I open it from bash scripts when text editing is needed. It opens instantly.


Geany is snappy as hell. Brand-new astroturf account?


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.


I've changed the URL from https://www.geany.org/news/geany-20-is-out/, which doesn't explain what the software is.

Previous threads:

Geany most common keyword auto completion - https://news.ycombinator.com/item?id=29257010 - Nov 2021 (1 comment)

Geany – A flyweight IDE - https://news.ycombinator.com/item?id=23524336 - June 2020 (113 comments)

Geany – Lightweight IDE for Linux and Windows - https://news.ycombinator.com/item?id=16557128 - March 2018 (92 comments)


> I've changed the URL from https://www.geany.org/news/geany-20-is-out/, which doesn't explain what the software is.

Really? Quote from the second paragraph of the present news:

> Geany aims to be a fast and easy to use code and text editor (some may call it even IDE).

From other comments, it seems the link to the news has low accessibility for those who enable JS by default. So a direct link may help.


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.


Still, I find the project's main landing page more informative for newcomers like me.


Geany can open large files (GB in size) that bring other editors to a grinding halt. It's my go-to editor for all files on Linux.


Vi(m) and Emacs can be used as pagers, so they can open files of any size (infinite, circular, you name it).

I mean, there's nothing bad about this particular feature of Geany... but, let's be honest, nothing special either.


In a world of IDEs/editors/apps built on Electron it's a big deal nowadays!


Idk, vim has a hard time with large files for me, too. Especially files with long line lengths.


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.


vim might be able to work with large files, but not if they contain long lines


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.)


This might be the best selling point I've seen yet! Really neat and will come in super handy for a few SQL dump files I have to occassionally open...


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.


This is my go-to text editor on Linux. Only one feature I miss from Notepad++ is persisting unsaved files. Otherwise it is a perfect application.


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.


Though I am quite happy with mousepad, I will give featherpad a go. Thanks

(I am already on KDE so the QT requirement is OK)

EDIT: Tested leafpad. I will keep it around but it doesn't have tabs which I quite like to have. :)


gnome text editor does that too


It's brilliant to be able to pass selected code or text through a definable shell command.

right-click -> Format -> Send selection to...


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.


Not open source, but sublime text does the trick.


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?


I love emacs and I'd agree to categorize it as one of the most well developed and feature rich IDE. However I wonder: is it really "very small"?


120.6 MiB for a entire Elisp development environment that casually happens to have a text editor built-in is pretty small to me.

For a alternative development environment example, the The Glasgow Haskell Compiler is 191.4 MiB by itself and it doesn't have a text editor.

For example Visual Studio Code is 89.6 MiB, but then you have electron25 as a dependency and that is 212.7 MiB extra.

As a somewhat larger example JetBrains bundle it's own customized Jetbrains Runtime JRE with it's 3.5 GiB IDEA IDE.

It's for sure no vim-minimal, but it's pretty lightweight as far as "IDEs" go.


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.


You're right, but I'm guessing the parent commenter wants something with a nice GUI and mouse support.


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.


Suggest running the notepad++ installer in wine. Maybe not everything works but everything I've needed has.

The notepad++ plugin ecosystem is a resource that no other software is likely to offer.



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.


Solution: disable JS. The site degrades quite gracefully.

https://geany.org/news/geany-20-is-out/


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.

Edit: typo fixo.

[1]: https://github.com/unwind/gitbrowser


No support for pls (language servers)?

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.


by pls do you mean LSP?

and Kate has really quite good LSP support if you haven't tried it out, I was pleasantly surprised when I gave it a spin recently


Yes, thanks for that correction, I was thinking of gopls.

Cool, I'll have to try out the kate lsp support.


In the Gnome IDE dept., mentions to two other options which are ported to gtk4 that brings GPU acceleration

- https://wiki.gnome.org/Apps/Builder

- https://github.com/Lyude/neovim-gtk


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 would not call that religious reasoning. Accepting a patch is accepting responsibility. Each line is a liability, not an asset.

Thus, if the maintainers did not think the patch is worth carrying the burden, I can understand.

And if the patch would be easy to carry and there was a demand for it, it would be trivial to run a fork, wouldn't it?


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.


> Each line is a liability, not an asset.

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.


It sounds like you're describing yasnippets in Emacs: https://www.emacswiki.org/emacs/Yasnippet


One of my favourite editors in GNU/Linux.


Geany was one of my first IDE when learning programming ~10 years ago. It has a special place in my heart.


Does it handle large files like sublime? Most editors go belly up if you open a huge file.

And due to my limited understanding of IT, I have at times opened large SQL database to apply changes by hand :-(


'Split "session data" into session.conf' is a nice change, I have wanted that for a long time. It would be nice if notepad++ did the same.


Oh! Nim support!

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..


Tried it in Windows 10 and its really performant.

But doesn't show Unicode characters (that aren't English characters) automatically.


Congratulations! I used to use it when only other open GUI IDE was Netbeans (or Eclipse).


Always looking for better lightweight editors so will try it out. Thank you for sharing!!


This one's good, too:

https://codelite.org/


the fact that I have to edit/provide CSS to make dark mode work right makes it a bit of a hard pass for me.


was my favorite before switching to vim

does 2.0 provide LSP intelligence? interested in trying sometime.


Why vim instead of Neovim?

I generally use vim on a server but I find it somewhat limited as the main IDE. Of course, I probably just haven’t spent enough time configuring it


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 a drop in replacement, I find it subjectively better than vim. Is there a reason not to switch for local tasks?


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.


What's flyweight?


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.


Thanks! I didn't even realize. I had heard of lightweight and bantamweight before.


Ironically, the contextual baggage is anything but.


Lighter than bantamweight, heavier than strawweight.


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


That's damn tall bar. If it were that polished they wouldn't need the money!


Yes, and in what concerns other FOSS projects another way is to buy books from relevant people on the respective project community.


i am happy with vim, i dont need geany

CHANGE MY MIND


No screenshots? The website has a screenshots page buried in a menu, but they're all very out of date.


right on the main page, there is a screenshot. If you click it, it takes you to more screenshots.

Open https://www.geany.org/ in a web browser like chrome or firefox


Like I said in my comment, they're all out of date and don't show the new version.


It doesn't look materially different. The program's UI has been stable for ages.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: