13 ms·
GNUStep now has badges
- deleted 3y ago[deleted]
- raverbashing 3y agoThey should have maybe looked into fixing the anti-aliasing first. As much as it's a lightweight DE, we're way past the point of CPU capability to render these basically for free, but it seems to be all over the place
- rbanffy 3y agoIt's also open-source, so anyone with the knowledge can fix it.
- raverbashing 3y agoYes, and then have their patch turned down for a miriad of reasons Knowing how to pick your battles is a need in OSS development
- sharikous 3y agoA fork then
- zaphar 3y agoA fork is really expensive. When the choice is use something else or fork GnuStep then use something else wins the overwhelming majority of the time.
- danuker 3y agoIs a fork more expensive than starting anew? How?
- zaphar 3y agoWhere does starting anew come into it? I didn't say anything about starting anew.
- rbanffy 3y agoIf the original project has a governance process that's difficult to integrate with and that slows down progress, a fork has a better chance of hosting a vibrant ecosystem than the original.
- codehalo 3y agoNot GNUStep. They are the absolute worst. Miguel de Icaza tried to work with them, and had to leave to create Gnome. Look at where they are and where Gnome is now. Saddest story in all of open source.
- pipeline_peak 3y agoI’d say GNU Hurd is even sadder, not that it’s a contest. It’s a pretty humble world of high effort low output lol.
- NavinF 3y agoI can't imagine how that could have gone differently. If Hurd was completed in the 90s, would anyone use a kernel that was slower than linux because it doesn't share data structures between parts of the kernel? Even today people disable isolation to improve performance even though our desktops are faster than old supercomputers: https://www.microsoft.com/en-us/windows/learning-center/optimize-pc-for-gaming-performance https://www.microsoft.com/en-us/windows/learning-center/opti... "Windows 11 security measures include Memory Integrity and Virtual Machine Platform (VMP) to protect against malware, which are features that can also disrupt gaming performance. If you choose to turn these features off before gaming, it can improve your performance and help you focus on the games at hand. Afterwards, it’s important to turn them on again since you are opening your PC up to risks while it’s less protected. For short periods, you might try turning off your Memory Integrity and VMP to see if you notice a difference."
- pipeline_peak 3y ago> If Hurd was completed in the 90s, would anyone use a kernel that was slower than linux because it doesn't share data structures between parts of the kernel? Perhaps in the server world where uptime is critical. After all, that is Linux’s largest market share.
- NavinF 3y agoDoubt it. In the server world, machines die all the time and nobody cares because ECMP routing and load balancers exist.
- queuebert 3y agoLooks great on my 25-year old CRT. I find it hilarious that we sharpened monitors so now we have to blur the rendering, because heaven forbid we see a pixel.
- NavinF 3y agoNo, if we had infinite resolution monitors we wouldn't need anti-aliasing. You gotta bandlimit your signals or you'll see aliasing. That's just how signal processing works. Imagine if your audio player's output voltage jumped between 16bit levels instead of smoothly transitioning. It would sound horrible. That's how bad jaggies look to people who didn't grow up with slow computers
- WesolyKubeczek 3y agoGosh just how did they manage with the CDs and 12-bit audio, like animals.
- akira2501 3y ago> if we had infinite resolution monitors we wouldn't need anti-aliasing. Color is based on frequency. There's an inherent limit to the range of light colors our eyeballs can process. > You gotta bandlimit your signals or you'll see aliasing. When changing sampling rates. If the monitors resolution and the font resolution were identical, then would bandlimiting actually have any effect? > Imagine if your audio player's output voltage jumped between 16bit levels instead of smoothly transitioning. It would sound horrible. The brain processes sound logarithmically. Is the same true for vision? I mean, I watch movies at 24 frames per second, and yet, I'm usually incapable of perceiving this. > That's how bad jaggies look to people who didn't grow up with slow computers Anecdotally.. but if the computer is experiencing a limit in displaying full resolution data to me, I actually don't mind noticing that fact.
- im_down_w_otp 3y agoThis is cool. I didn't even know GNUStep was being actively developed or maintained. I'd love to be able to use GNUStep as my primary workstation environment. Does anybody have any recent experience with attempting such a thing?
- toenail 3y agoProbably not what you want to hear, but I used it/WindowMaker in the early 2000s, it was alright and worked well on my underpowered machine. Moved on to a more modern environment after maybe two or three years.
- mattl 3y agoGNUStep isn't a window manager, it's a development framework... think OpenStep, not OPENSTEP. People use it with WindowMaker but people can also use it with whatever other desktop environment they're using.
- unixhero 3y agoLike enlightenment
- zare_st 3y agoYes. The bane of old X11 environments and UI toolkits is the DPI/resolution of modern screens. Usually the sweet spot for them is around 1600x1200, usable on Full HD, unusable on 2K. Windowmaker and GNUstep included. I used Windowmaker with GNOME session running in background for years as a main driver, and went KDE Plasma due to the reasons above. Windowmaker icons are 64x64 and while there might be a way to increase them, dockapps are rendered in 64x64 max. Devs used the display limit to achieve a certain style, such as LCD dockapps. Useful and charming but it's small and unusable at 2K or above. So the first thing you're going to get yourself wrapped into are the fonts and font sizes in Windowmaker and GNUstep, and you'll never achieve the same look and feel as default on appropriate resolution.
- ratmice 3y ago
- rbanffy 3y agoIs there a guide somewhere on how to write software for GNUStep in a way it's also compatible with macOS?
- koito17 3y agoThese are called "Renaissance apps" by GNUstep users. They are apps designed such that you can run them on both GNUstep and Cocoa. There used to be a tutorial out there, but the site is gone now. Here is an archive link to it: https://web.archive.org/web/20180125122828/http://www.gnustep.it/nicola/Tutorials/Renaissance/index.html https://web.archive.org/web/20180125122828/http://www.gnuste...
- asveikau 3y agoI haven't followed gnustep in a long time, but I thought renaissance was a library that was an alternative to NIB files, with an XML format. Back when I wrote some small apps, it was very easy to target Mac with the GNUstep makefile package. That could build on Mac without any extra work on the build side. I would sprinkle a lot with #ifdef __APPLE__ when the APIs differ, on a case by case basis. A lot of things (most?) work on both without modification, it just depends how new the API is.
- jhatemyjob 3y agoI assume you meant to ask "how to build" and not "how to write", since writing the Objective-C code is trivial since it's all just AppKit and there's documentation on Apple's website for that. Building for both GNUstep and macOS is difficult. The problem is, macOS wants you to use Xcode and GNUstep wants you to use their weird build system. In order to build software that is compatible with both GNUstep and macOS you will either need need to have two parallel build systems (one GNUmakefile and one Xcode project) or use a custom build system. Personally I think GNUstep's build system is stupid, and I don't like using Xcode, so I lean more towards a custom build system. Sounds insane I know but it really isn't that bad. Compiling and running a Cocoa application on macOS pretty much boils down to this: clang main.m -framework Cocoa ./a.out I don't remember how to do it for GNUstep. It's been a few years. Their GNUmakefile thing is REALLY weird, they have all these Makefile macros you need to import and they try to abstract all of this stuff away. Using Makefile macros. It's horrible. I asked ChatGPT and it generated this: include $(GNUSTEP_MAKEFILES)/common.make APP_NAME = YourAppName YourAppName_OBJC_FILES = main.m YourAppClass.m YourAppName_RESOURCE_FILES = Info-gnustep.plist include $(GNUSTEP_MAKEFILES)/application.make I would make a basic GNUmakefile, then run it with `V=1` (or `VERBOSE=1`? i forgot the name of the environment variable) to get the actual terminal commands its running, extract those, put those in your one-liner custom build script and be done with it
- netik 3y agoand of course, it’s ugly. sigh. Why is it that every OSS desktop has to look like a demo from the 70’s?
- eikenberry 3y agoHave you looked at modern Gnome or KDE Plasma? They are both at least as petty as MacOS or Windows.
- nmstoker 3y agoKDE Plasma is great and actually seems to have inspired a bunch of Win11 approaches, so it is possible to get things looking good but there's definitely truth in the sentiment above: a huge chunk of OSS software looking terrible. There's always the form vs function debate but it's a shame that more doesn't manage to have both form and function if the respective specialists could coordinate
- RamblingCTO 3y ago> They are both at least as petty as MacOS or Windows Yeah, no. I don't think you use macOS/win at all if you say stuff like that. It feels and always has felt rough around the edges.
- nerdponx 3y agoI use both and I think KDE looks and feels great.
- em-bee 3y agoi still use MacOS and windows from time to time, and i simply have to disagree. using MacOS has just as many WTF moments as i get with Gnome (and KDE too i think, but i haven't used that in a while) a windows just leaves me baffled every time i have to touch it. ( https://commadot.com/wtf-per-minute/ https://commadot.com/wtf-per-minute/ )
- tracker1 3y ago
- Mesopropithecus 3y agoThe thing I love about HN is that enthusiast stuff like this makes it to the front page. <3
- sharikous 3y agoQuestion: is Objective-C post 2.0 being actively maintained outside of Apple? Can I use the new features that Apple added in cross platform projects or open source environment like this? I loved Objective-C very much (yes, really) and I'd like to continue using it after Apple phases it out
- em-bee 3y agowell, the one positive thing about apple phasing out Objective-C is that enthusiasts may be more motivated to work on GNU Objective-C to catch up, also considering that doing so is no longer a runaway target.
- jhatemyjob 3y agoThe clang/LLVM Objective-C compiler is open source. You can use the same bleeding edge compiler for iOS 17 on Linux for example. So you can use features like Automatic Reference Counting, blocks, etc no problem. The problem is the frameworks (Foundation, UIKit, AppKit, etc) are closed source. So you either need to create your own frameworks or use something like GNUstep.
- chasil 3y agoPrevious posts describe Swift in a state of flux, while Objective-C is more stable in most areas. It would not appear that phasing out Objective-C would even be possible. https://news.ycombinator.com/item?id=35914330 https://news.ycombinator.com/item?id=35914330
- MBCook 3y agoApple has the largest Objective-C code based in the world (I would assume). It’s going to take them a long time to covert it. So I don’t see them dropping it anytime soon. It’s not recommend for new code (in Apple land) and they’re already starting to make features Swift-only. But they won’t stop shipping it any time soon.
- wahern 3y ago> It’s not recommend for new code (in Apple land) and they’re already starting to make features Swift-only. That's a real shame because FFI language bindings to Objective-C frameworks are amazingly simple to do with Objective-C. You basically create low-level C ABI bindings to objc_msgSend and about 40 other routines (e.g. class_getName). The latter bindings are principally for introspecting the class hierarchy and acquiring references to opaque class and method implementation pointers. method_getTypeEncoding returns a text-encoded type signature for a method. And objc_msgSend itself is a magical variable argument function for invoking arbitrary methods on arbitrary objects (including classes, which are objects themselves). With that small set of C ABI bindings you can generate strongly typed bindings to all the many thousands of Objective-C framework and library interfaces, system and third-party. I did this for Lua and it works beautifully. And you can just as easily define new classes and methods and wire them up to the host language (Lua, Python, Java, Rust, etc), though I haven't needed to do that just yet. In my case this is all done dynamically at runtime, except for the ~40 required static C function bindings. The only difficult part was binding objc_msgSend. You could use libffi, but in my case I wrote a script to statically generate a permutation of Lua/C binding functions with up to 6 arguments, any 2 of which could be doubles instead of scalars, and either a scalar or double return value. Atop those bindings sits a small Lua library which, using the other ~40 Lua/C function bindings, implements a type-safe bridge for the entire macOS Objective-C platform, GUI frameworks and all, modulo a small number of niche edge cases (e.g. IIRC there's a special Objective-C ABI for directly returning small structures which my objc_msgSend bindings don't implement, but I haven't run into those cases and my Lua bridge code would throw an error if I tried). Because Objective-C itself uses reference counting, it plays well with any GC environment or lack thereof. I'm sure Swift is a nice language, but there are many nice languages, and Objective-C makes language interoperability downright dreamy.
- pshirshov 3y agoHoly moly, undeads in action.
- hk1337 3y agoBadges? We don't need no stinkin' badges.
- bloopernova 3y agoThank you I was beginning to really feel my age that no one had made that reference. (It's from the movie "Treasure of the Sierra Madre", which is worth checking out!)
- vondur 3y agoI suppose it's sad that my frame of reference is Mel Brook's Blazing Saddles...
- dusty_ayres 3y agoCould be worse - your frame of reference could be "Weird" Al Yankovic's UHF. "Badgers? Badgers? We don't need no stinking badgers!"
- vondur 3y agoHa. That too was a great movie.
- rismay 3y agoWhy does this look like it’s from the 80’s still?
- pram 3y agoBecause it’s the free (like freedom not beer) version of something from the 80s.
- chasil 3y agoThe interface is from NeXT OS, which as a company was led by Steve Jobs. The underlying architecture of NeXT was largely adopted into OS X and iOS. The GUI appearance evokes nostalgia for those that used it (the very first web browser was written within NeXT). https://en.wikipedia.org/wiki/NeXTSTEP https://en.wikipedia.org/wiki/NeXTSTEP
- kzrdude 3y agoI would wish they'd pick something based on whiteish background instead of gray (white like the early Mac OS X versions would be nice, don't need pinstripes.)
- badsectoracula 3y agoSome people like dark themes, others like light themes, so gray is the middle ground :-P. FWIW GNUstep is themable so it should be possible to customize it. Though i'm not aware of any that follows modern trends, but at least it is possible to make it kinda sorta like a broken telephone version of early Mac OS X using the Rik theme[0] (the screenshot also seems to be using a custom theme and setup for Window Maker too and judging from the shadows it most likely also uses Compiz as a compositor). [0] https://github.com/AlessandroSangiuliano/rik.theme https://github.com/AlessandroSangiuliano/rik.theme
- coldtea 3y agoIt's its superiority to modern GUIs that make it appear so
- 3y ago
- lxe 3y agoWhat can a "modern" OS do than something like NextSTEP absolutely cannot? Aside from the chrome, and performance-bound things like video streaming and gaming, the functionality of what we can do with computers changed very little over the decades.
- mepian 3y agoDid NeXTSTEP have any support for threads and their synchronization? POSIX introduced its thread model around the time Apple absorbed NeXT.
- mpweiher 3y agoYes. NeXTSTEP had Mach threads, both kernel and user-space.
- wahern 3y agoMost if not all systems had threads before POSIX Threads. POSIX Threads brought a standard interface to replace the chaos that reigned. It took many years for the ridiculous amount of thread API portability cruft in Unix ecosystem software to be excised. You saw something similar with atomics until C11 and C++11 atomics displaced old interfaces, though that switchover seemed to happen much quicker, perhaps because it was principally a userspace issue and you could bring newer toolchains and binaries to older platforms.
- pipeline_peak 3y agoThere’s not much more else to push towards, Xerox pretty much figured it all out in the 70s. End users don’t use operating systems, they’re a burden of security vulnerabilities and compatibility issues. If I had to round it out, the tech industry as a whole would prefer we all do everything in browsers over the cloud. Disregarding freedom and privacy, I would prefer things to be that way.
- thsksbd 3y ago"Disregarding freedom and privacy, I would prefer things to be that way." Reliability too. The cloud is 99.9999 reliable until your power, therefore your internet cuts off. Your local office, or emacs, or whatever, will gladly chug along until the M1's battery drains
- deleted 3y ago[deleted]
- meepmorp 3y agoWindowMaker > GNUStep, imo.
- badsectoracula 3y agoThey are different and not mutually exclusive things. Window Maker is a window manager with a NeXTStep-like look. GNUstep is an application framework. You can use GNUstep with Window Maker (and many do) but you can also use it with KDE, GNOME, XFCE, FVWM, IceWM, JWM or whatever window manager you like. AFAIK GNUstep also has a Wayland backend so you could also use it with Wayland compositors. Similarly you do not have to use Window Maker with GNUstep or any ObjC runtime or libraries, just use it by itself as a window manager. Personally i do not use GNUstep at all but i use Window Maker. (note that Window Maker does create/use a GNUstep directory in the home directory but that is a historical artifact and IIRC in recent versions it can be made to use a directory inside .config instead).
- matchcase 3y agoI love how GNUStep and WindowMaker look, but it just doesn't seem to work that well on higher resolution devices.