Hello there. In the past few months, I spend almost all my free time to learn everything, from C, to C++; from polling to threading; from static to dynamic libraries and differences between linking on different platforms…basically, i jumped head-first into the moshpit of low-level developing. In that time, I learned and started to understand a lot of things that have been going thru my head. Things like „Why is there no PS3 compiler for Mac?“ Well, there actually is. But porting it from the first os - Windows - to something that is not-standart - OS X - is hard. And so on, and so forth.
So, I also learned ObjectiveC and came across GNUstep, when I tried to toy aorund with it. I really enjoyed the syntax, and have been pondering to suggest a giant RFC to php.net for „Objective-PHP“, to bring Objective-C++ to PHP…it was a fun idea, but the more I think about it, the more its shaping up. And PHP always reminds me of portability: I code it on my mac, and run it on my Linux box, and can run a test at school on Windows. And after I realized that, I did another course on static libraries. That brought me to my first possible improvement for GNUstep: Static libs. If GNUstep had static libs, it wouldnt be neccessary to link against various of libraries, package them all together, just to build one app. Imagine, that you have a great idea, and wrote it out in ObjC on GNUstep. But when you try to redistribute on Windows, you realize that its anything but pleasant. On linux, this is okay - because you can use PKMs. So, packaging it all up, is not easy. But meanwhile, static libraries allow you to put all the objects that you need into one binary…which in return means, your executable becomes portable. On my various tries of building GNUstep on my OS X, i tried to build it as staticaly as possible. Mainly to avoid linking against OS X’ native libs. Imagine what happens if the dynamic linker on a non-dev oS linked an executable to Apple’s libobjc2, although it was intended for libobjc2-gnustep? It…could turn out quite weird. *chuckles.* Therefore, I tried to be as static as possible. But since libobjc2 didnt want to compile with clang, I have given up the idea for now, while I was working on other projects. But - hey. If GNUstep learned to be more static, it woudl be more portable - which in return, would make it much easier, to redistribute an OBJC app. And that in return, would be so cool =). But redistribution is not the only problem. I saw, somewhere in the manuals about upgrading, that in order to upgrade you needed to kill a process, that helped the GUI. Oi, not cool. Having to depend on an external .exe that keeps the backend running is kinda un-portable. That requires any user to install the runtime, in order to run an app. I also saw that there are many backends. For what are they, and what exactly are they based on? I amc urrently having a lot of fun with FLTK. Its a great GUI toolkit - and thus, very tiny. It only adds 2mb to my app, and thats the maximum, to get me going with a GUI. So my suggestion here, make clear which is the „probably best“ backend to use. In conjunction with the point above, possibly one that wouldnt require an always-running process :p Now, while I travel around mainly with my MacBook, I dont have to worry for a toolchain. And if I have my Vaio duo 11 with me, i also get Windows and Ubuntu on hand if I need them (and actually a „hackintosh“ x3). But often enough, I am spending a lot of time in coding class - and in which, i have basically nothing to do. SQL is something I taught myself years ago. So, explaining relational database structures is pretty basic for me. So, I try to spend my time with coding. The only set of compilers is Dev-C++ - which, in my school - is an outdated version of MinGW. So outdated, that I honestly didnt try to run Bash yet - i fear that its something like 3.1 xD. But, what if I had a portable GNUstep build? If GNUstep was optimized to be ran off a thumbdrive, it could be utilized in a ton of ways. To build my current project Deskshell, its recommended to use a uNIX style build system. I am trying to port it to use Microsoft’s VS too - the project itself uses GYP, so I need to adjust settings - but it would be much easier to run it in a UNIX environment. Now, if I was able to download a fully prepared GNUstep bundle, and would be able to launch a .bat file to kick off a UNIX environment, that would be so very useful. :) That way, I could make building easier, and rely less on the wobbly info that I am reading off other projects o-o. In short, this suggestion would be to make GNUstep even easier to be used from anywhere, like from a thumbdrive. I am actually waiting to finish my current project to finalize my package manager, that has developed so far, that it could build from source too. For that, I would really liek to use a standarized toolchain. I first thought about using plain MinGW - but i would be happier to actually advertise, that drag0n (the name of the PKM) offers a toolchain that can also do Objective-C. It would make it all complete - a PKM that can not install just from a lot of places, but also a lot of sources in different languages. For now, I just wanted to express my thoughts and ideas for GNUstep. I hope to find a way to utilize it more in the future towards an end-user - and not just devs. But as long as it is a humble task to build up a good bundle, it will be impossible for me to redistribute GNUstep for now. And, if i get GNUstep to compile properly on OS X, I will see and try if i can get an old project that I saw in the trunk working again; GNUstep.framework, which makes it possible to really have one api, across all platforms that use GNUstep. :) For now, i wish you a great day :) Kind regards, Ingwie! ^^ _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
