It is currently Tue Jul 16, 2019 5:45 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 19 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Thu Apr 04, 2019 6:29 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11375
Location: Rio de Janeiro - Brazil
Yeah, what's up with that? Every Windows program you download these days has to be installed, making all kinds of modifications to your system, and making it that much harder for you to carry your tools around with you unless you're taking the whole computer and not just your files.

Seriously, what happened to simply downloading an archive, extracting its contents to a folder of your choice and just using the freaking program right there? No, you need to run a "wizard" that's going to scatter files all around your hard drive, mess with file associations, put useless shortcuts everywhere, and who knows what else.

While this has bothered me for a long while now, today I'm particularly upset that I can't find a decent C compiler for Windows that I can just extract to a folder and use. The closest thing I could find was Embarcadero's C++ compiler, which was originally Borland's. Is that one any good? Does anyone here have any other recommendations?


Top
 Profile  
 
PostPosted: Thu Apr 04, 2019 7:53 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21505
Location: NE Indiana, USA (NTSC)
When I used Windows regularly, I used to have a "portable" installation of MinGW that I carried around with me on a flash drive. I think modern MinGW-w64 should support portable operation if you set the Path appropriately.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Thu Apr 04, 2019 8:53 pm 
Offline
User avatar

Joined: Wed Sep 07, 2005 9:55 am
Posts: 367
Location: Phoenix, AZ
I've have Dev C++/MinGW on a flash drive. IIRC, the portable version just needs to be extracted to a folder.

_________________
. That's just like, your opinion, man .


Top
 Profile  
 
PostPosted: Thu Apr 04, 2019 8:54 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 4152
Location: A world gone mad
tokumaru wrote:
Seriously, what happened to simply downloading an archive, extracting its contents to a folder of your choice and just using the freaking program right there?

Generally speaking, and highly summarised: software developers stopped caring and became complacent. This, compounded with the general dumbing-down of things and the lowering of the bar (for software development; read: everyone thinks they and their dog should code), resulted in a plethora of junk. Let's also not forget that (in my opinion) fewer and fewer people are developing software using PLs and software bits that require understanding how things like shared libraries or DLLs, linker paths, etc. work.

The closest thing I can think of that might adhere to what you want, compiler-wise, might be MSYS2 or MinGW, which can provide gcc or possibly clang. But I make no promises that the installs can be made portable (i.e. everything in a single directory which you can move around); I do know that at least MSYS2 installs primarily in the directory of your choice (ex. C:\MSYS2), but I suspect there are other bits that would have to be backed up/moved/copied/whatever if moving it from machine to machine (I'm thinking stuff in %APPDATA%).

And in closing, I'll add: %APPDATA% and %LOCALAPPDATA% on Windows is an abomination, just like the registry.


Top
 Profile  
 
PostPosted: Thu Apr 04, 2019 9:11 pm 
Offline
User avatar

Joined: Fri Nov 24, 2017 2:40 pm
Posts: 168
Dunno, but that's one of the things that drives me batty about windows. Everything is an installer, and they always seem to put crap wherever they please on your hard drive. Uninstalling them seems to work like half the time at best...

On Linux 90+% of my software comes from the system package manager, and it's kinda gloriously better than a million different separately installed and managed bits. On Linux/Mac in general, I also have a fair amount of software that is just built and resides in my home folder somewhere. On the Mac, the native application format is a self contained ("portable") app bundle. A lot of Mac users I know will refuse to run installers for programs that don't seem like they need to. "If it's not just an app bundle that you can put wherever you want, what is that installer doing..."


Top
 Profile  
 
PostPosted: Thu Apr 04, 2019 10:28 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 7526
Location: Canada
If you want something that's very minimal, there's the Tiny C Compiler:
http://www.tinycc.org/

There might be a few relevant links at the bottom of that page if you want something slightly less minimal too.


Top
 Profile  
 
PostPosted: Thu Apr 04, 2019 11:14 pm 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7720
Location: Chexbres, VD, Switzerland
tokumaru wrote:
Yeah, what's up with that? Every Windows program you download these days has to be installed, making all kinds of modifications to your system, and making it that much harder for you to carry your tools around with you unless you're taking the whole computer and not just your files.

Before anybody popus up and claim free software/GNU is better, every linux program also has to be installed, if not compiled and installed (*). In all cases you have no idea where the files needed to execute the programm are scatterred arround in your system unless you reverse engineer the said system, and even then you could miss something. This applies to all linux distros. Unlike Windows, the possibility of a program not being installed isn't even there.

And I 100% agree with Toku.

(*) I'm not going in the details how annyoing it is to compile a compiler and have the compiled compiler not take over the system's compiler, etc... by I managed to do this one time in my life and wonder if I'll ever do this ever again.


Top
 Profile  
 
PostPosted: Fri Apr 05, 2019 4:54 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11375
Location: Rio de Janeiro - Brazil
I've been looking at MinGW and I can only seem to find an installer. Are you saying I still have to use the installer and let it put unknown crap in my system and then grab the main folder hoping it will work as a portable app? Or is there a portable download I missed?


Top
 Profile  
 
PostPosted: Fri Apr 05, 2019 6:15 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11375
Location: Rio de Janeiro - Brazil
I'm not much of a Linux guy, but from the little I've seen it looks like Linux and Mac developers just blindly install stuff system-wide without worrying about where the files actually go. I hate working like that, specially since I much prefer to carry my development environment with me, instead of having to configure everything over and over on all machines I have access to.

Regarding Tiny C Compiler, I have used in the past and was mostly satisfied with its small size and no-frills philosophy, but it has come to my attention that code optimization isn't one of its strongest suits, and since the reason I'm looking into using C now is to achieve the best possible performance, TinyCC might not be the ideal tool.


Top
 Profile  
 
PostPosted: Fri Apr 05, 2019 7:24 am 
Offline
User avatar

Joined: Sat Jan 09, 2016 9:21 pm
Posts: 618
Location: Central Illinois, USA
tokumaru wrote:
I'm not much of a Linux guy, but from the little I've seen it looks like Linux and Mac developers just blindly install stuff system-wide without worrying about where the files actually go. I hate working like that, specially since I much prefer to carry my development environment with me, instead of having to configure everything over and over on all machines I have access to.


That is the normal way of doing things. It's easy (you just install from a package manager or type "sudo make install"), but it's annoying if you care about where things are going.

That said you can often just run stuff directly out of any old path if you're careful and install it that way. Install directly to your home directory, or /opt, or a thumb drive, or whatever. It's just usually more work to figure out how to "install" it that way. (often a "make install" process will let you specify a root where the thing will live)

_________________
My games: http://www.bitethechili.com


Top
 Profile  
 
PostPosted: Fri Apr 05, 2019 7:55 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7720
Location: Chexbres, VD, Switzerland
tokumaru wrote:
I'm not much of a Linux guy, but from the little I've seen it looks like Linux and Mac developers just blindly install stuff system-wide without worrying about where the files actually go.

Most of the time, if the program is in your distribution's repository, indeed you do exactly that. If the program is NOT in your repository, then you should compile it and then also have to install it (with make install command).

I've had once a linux program distributed as a RPM package with a Windows-style installer, that's probably because this was the linux port the company made of their Windows program, rather than the program being made with linux philosophy entierely.

I understand you don't like to work like that, and there's definitely downsides, but at least the philosophy itself is somewhat consistent. (i.e. let your package manager do the work of installing and updating programs). The worst is when there is no consistency.


Top
 Profile  
 
PostPosted: Fri Apr 05, 2019 9:01 am 
Offline
User avatar

Joined: Fri Nov 24, 2017 2:40 pm
Posts: 168
Few pieces of Mac software use installers. I'm not quite sure how Mac users have many pieces of software to install. The exceptions I can think of on my machine are the Android tools, Unity, and anything made by Microsoft.

Stuff that you compile yourself on Unixes almost universally lets you set the "prefix" path, so you can trivially "install" them wherever you want. I dunno what other people do, but I consider it to be a bad idea to install to any system directories ever. I put most things in my home directory, and some stuff in /usr/local.

The reason I Linux package managers a pass on the whole installer hell issue is that there is a single central system that manages installed software. Installing things is trivial, and comes from a mildly vetted source. Uninstallation works as expected. You can also easily list the files installed by a package (ex: "apt-file list libglfw3-dev" on Ubuntu). Updates are automatic on the same system for both user and system software, isn't forced on you by default, and rarely requires rebooting. \o/

Compare that to the Windows "Add/Remove programs" control panel. Since supporting it is opt-in for software, half of the software you have doesn't show up in there. The uninstallers that it triggers are all custom bits of software, and IME often don't work. The most recent time I tried clearing up some disk space, half of the packages I tried removing failed to uninstall. A bunch of them were even Microsoft provided like the Xbox SDKs and the older version of Visual Studio it required. -_- Anyway... that's all to say that I agree that the state of installing software on Windows is awful.


Top
 Profile  
 
PostPosted: Fri Apr 05, 2019 9:47 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21505
Location: NE Indiana, USA (NTSC)
Bregalad wrote:
Most of the time, if the program is in your distribution's repository, indeed you [trust the package manager to put things in the appropriate places under /usr]. If the program is NOT in your repository, then you should compile it and then also have to install it (with make install command).

How does that handle a program that is not in the repository precisely because it is distributed as an executable in order to keep its source code a trade secret? One example is a game that is larger in scope than hobby dev alone can provide. Another is an emulator or other application whose developer fears that if it were free software, malware developers would repackage it bundled with harmful software. For example, APK Hosts File Engine is proprietary because its author saw what the developer of the eFast browser did to Chromium.

Ideally, a way to fund development of AAA-scale games as free software would be discovered. But next best, I think each proprietary application should get its own folder under /opt to parallel /Applications under macOS or C:\Program Files under Windows. Snap packages have a problem, namely being tied to Canonical's "Snap Store" repository and no other. The Snap installer offers no way to add third-party repositories, and it considers out-of-repository packages "--dangerous" (source) because they haven't been signed by Canonical.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Fri Apr 05, 2019 9:52 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 7526
Location: Canada
tokumaru wrote:
I've been looking at MinGW and I can only seem to find an installer. Are you saying I still have to use the installer and let it put unknown crap in my system and then grab the main folder hoping it will work as a portable app? Or is there a portable download I missed?

Yeah, I think the portable version people are talking about is a copy of the install. (Or you could just use the installer to install directly to a USB key if that's what you wanted.)

AFAIK MinGW's installer doesn't add anything outside the specified folder though, except for maybe an optional link to its installer on your desktop. It doesn't produce an "add remove programs" thing for Windows, but deleting the folder is the same as uninstalling it.

The purpose of its installer is more of a "package manager", selecting the optional components that you'd like to add. Otherwise it's more or less a portable thing? It doesn't change your global PATH (they have a policy against letting the installer do this, and their setup guide recommends using a script to set up the path when you begin a MinGW session rather than setting it globally).

I don't think it even touches the registry. Its installer literally just downloads and copies things to a single folder, excepting the optional desktop shortcut.


There is a manual installation guide and all this involves is downloading a ton of archives and unzipping them to a folder, more or less, exactly what its installer was designed to make easy.


So, it's installer is a bit more "minimal" than a typical Windows installer, and maybe that's not obvious based on experience with other Windows installers, but the Min does stand for "Minimalist" after all.


Last edited by rainwarrior on Fri Apr 05, 2019 10:11 am, edited 2 times in total.

Top
 Profile  
 
PostPosted: Fri Apr 05, 2019 9:53 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7720
Location: Chexbres, VD, Switzerland
Quote:
Installing things is trivial, and comes from a mildly vetted source.

This is true only if the software you're looking for, and in the version you're looking for, is in your repository. If you want anything nonstandard, you'll have to compile, or it might even be impossible to install it all, for example if you'd like an old version of a specific software with a new version of the system.

Quote:
I dunno what other people do, but I consider it to be a bad idea to install to any system directories ever. I put most things in my home directory, and some stuff in /usr/local.

I didn't ever see any program installing themselves in the /home folder using a package manager, and I think that's not where it stand. In my opinion, /home is the linux equivalent of D:\ in windows, that is something non-system related you back up regularly, where you put the data you produced yourself. Everything else is the equivalent of C:\, what the system deals with and you usually do not touch (there's exeptions to this, neededless to say).

Quote:
Uninstallation works as expected.

I've had bad experience with the (now decreased) yum package manager of a Fedora distro, that would uninsall all dependencies regardless weather other softwares still uses them. Fortunately, apt doesn't seem to have similar issues - but version conflicts are still hell.

Quote:
You can also easily list the files installed by a package (ex: "apt-file list libglfw3-dev" on Ubuntu).

I've never heard of this but it definitely sounds like a very interesting command !


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 19 posts ]  Go to page 1, 2  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group