Archive: How respectable NSIS really is?


How respectable NSIS really is?
I am trying to convince myself and my work place the NSIS is a respectable enough installer to replace InstallShield. Our main fear is that unfamiliar installer will deter users from installing the application fearing the unknown.

Mind you I am talking purely on the end user experience of the application installer, not the installer environment, features, flexibility... what ever.

For this, I have started to fish around the net for a complete list of products, preferable well known brands, Using NSIS as their installer.

Failing to find such document I turn to you dear NSIS guru's... can you chip in names of products using this installer?

10x, Liberty


Just found out a page here http://nsis.sourceforge.net/Users stating some users... :)

if you know about more big names which are not there...

Liberty


XAMPP
XAMPP is a www.apachefriends.org project, for Windows, Linux and MacOs in german, english and french here a snippet from their page:

...This version contains: Apache, MySQL, PHP + PEAR, Perl, mod_php, mod_perl, mod_ssl, OpenSSL, phpMyAdmin, *********, Mercury Mail Transport System for Win32 and NetWare Systems v3.32, JpGraph, FileZilla FTP Server, mcrypt, eAccelerator, SQLite, and WEB-DAV + mod_auth_mysql....
greetz Dave

If the list in http://nsis.sourceforge.net/Users isn't convincing enough. Then I am out of ideas. The biggest software companys usually uses their own installers and smaller ones uses InstallShield mainly because it's well known (This is only my personal opinion).


Re: How respectable NSIS really is?

Originally posted by eran.liberty
Mind you I am talking purely on the end user experience of the application installer, not the installer environment, features, flexibility... what ever.
Then download and run some installers, and put yourself in the shoes of an end-user. From the list: Winamp, DivX, 7-Zip, FileZilla, Ethereal. Download and install NSIS itself. How do they feel to you? My personal opinion is they behave so much like similar InstallShield/InnoSetup/Wise packages that it makes no difference which you choose.

The user doesn't care what install packager you used. They just want to click "Next," "I Agree," "Next," "Next," "Finish."

Re: Re: How respectable NSIS really is?

Originally posted by bhaelochon
Then download and run some installers, and put yourself in the shoes of an end-user. From the list: Winamp, DivX, 7-Zip, FileZilla, Ethereal. Download and install NSIS itself. How do they feel to you? My personal opinion, both as a developer and an end-user, is they're so close to InstallShield/InnoSetup/Wise as to make absolutely no difference.

The user doesn't care what install packager you used. They just want to click "Next," "I Agree," "Next," "Next," "Finish."
Personally I cant agree more... but my comp has a history of being afriend of the new, less known, less debuged, open source (for god sake) and basicly anything that has bitten thier ass in thier long years of accumelated experience.
I have seen this attitude saves out behinds several times in the past so I am the last to LOL it.

But I do belive moving into NSIS might be an imporvment over our WISE/Installshild/custom-made jungle... so I want to come with as strong case as I can build...

Had I had planty of installers experience to back me up, this might have been an easier job. But since either NSIS or InstallShield are going to be my first... I have to relay on this Forum (b.t.w. 10x for all) and various documents with titles like "NSIS Vs. InstallShield" or "I have seen Installer heaven story by..."

you c my point. :)

If you can contribute some punches that realy tilt the scale... fire at will.

"money" and "open source" are not considered pros in this context.

Liberty

New? Less-known? Less-debugged? There are some BIG names on the list of NSIS users. If those companies thought NSIS was immature or obscure or bug-ridden, do you really suppose they'd have even given NSIS a second glance? Of course not. They have reputations to maintain and uphold, and they can't do that if they distribute ugly, unintuitive installers. Granted, the same can be said for InstallShield, but just because a product costs $1700 doesn't mean it's better than one that costs nothing.

Download NSIS and use some of the examples to build a proof-of-concept for your product. Do the same with InstallShield, Wise, InnoSetup, and whatever other install packages you're looking at. Play with each of them for a couple of extra hours, too. If your boss doesn't want you to "waste" time on them at work, take them home.

Some key points that may guide the decision making process:

The decision is ultimately up to you and your company--not us. All we can do is welcome you with open arms if you choose NSIS and wish you good luck if you choose someone else.

eran.liberty:
Your approach to an open source tool is totally flawed.
You assume it like a closed proprietary product having some unrevealed, swept-under-the-rug, newbie-biting malfunctions which are known only to a select group of people, so that "social networking" is the only way to avoid disinformation and form a true opinion.

Grave defects never remain unnoticed/hidden in a high profile open source project like NSIS.
Visit project's home page in Sourceforge.net, check the bugs and how they're fixed, nothing is secret. If you discover any bug, step in and file it.
If you'd like a new feature, request it, discuss it in this forum.
Check the number of posts in this forum, check the number of downloads, and above all, roll your sleeves and start experimenting it now, see for yourself, nothing is magic, eventually it's how you code that determines respect or disrespect, not the tool.

Actually, your description of your current status does not make me feel respect at all:

our WISE/Installshild/custom-made jungle...

Thanks all,

It has decided that one of the smaller installers will be done first both as InstallShield and as NSIS and delay decisions till we have personal experience. so now I have two learning curve to deal with... (or two learning opertunities :) ).

about the flawed view of open source. all I meant is that given a bug/missing feature, I do not see myself diving into the source to make it better... and dont get me wrong on my previous work, month worth of code went into linux kernel / cvs and other open source project... this is simply not the case here. so the "open source" is not a pro! its not a con either.

same goes for the "free", 100$ , 1000$ even 5000$ are not an issue. if there is an installer system that is just a bit better, in the not so very long run, it worth it.

about my current state not creating too much respect.
1. I agree
2. I wish to amend this state
3. thats why I am here asking all the pre-noob questions. :)

Liberty


As an end user, nothing pisses me off more when i see things like:

Application X - zip bundle (4mb)
Application X - installer (15mb)

yes, im exaggerating, but seriously, the best installer is the one which does the job with the smallest of overheads.


NSIS vs. InstallShield
I'm now also in a position where I may be forced to use InstallShield. I don't have personal experience with InstallShield, but I have started using NSIS recently and am addicted to it.

If anyone has specific examples of how NSIS is superior to InstallShield (besides the obvious overhead & compression superiority of NSIS), or examples of how you can do something in NSIS but can't in InstallShield, I would appreciate it if you could post a reply with that information.

Thanks!


It's pretty obvious what NSIS has that InstallShield doesn't have - programmability and real customisability. Don't quote me on that but I've done a huge amount of NSIS work which doesn't involve writing an installer at all (check my site for example).

As for performing tasks on the system, you might find that InstallShield has more but that would be because it has a lot of $ behind it. With NSIS usually if there's something you need doing and you haven't found the solution you'd either have to write the code yourself or ask someone else politely to do it!

If customisability and choice is not what you want then InstallShield is for you.

-Stu


When I joined the company it was one of the first jobs I got to build a new Setup for our latest Software.

About 5 weeks with InstallShield I where pissed off, frustrated and had still no installer.

I started to search for free installers, and had to made a decision between inno, nsis and a third don't know how it was called.

after 3 days the setup was done, know - 2 1/2 years later -
I've written some macros, have modified the UI a bit, use own dialogs and so on.

the next thing I'll do with NSIS is an internet-update for our software, because no one wants to realize this in VB or similiar.

You can do a lot with nsis if you spend some time on searching the forums, reading the manuals and collecting the plugins you need - but you would also need some time to get along with Installshield.

I hope there are not too much mistakes in the text.


I was in your shoes about 2 years ago.

The company I work for, used to rely soley on InstallShield Professional to deploy our products, but it was causing so many problems for both developers and end users, and had some nasty bugs, I was tasked to look for solutions.

After looking at the alternatives, I put together a case to move all our installs over to NSIS. (at the time v2.0beta).

Since that day, we have not looked back. Creating installs for developers is now a walk in the park (90% automated), our products have a professional look, are small and efficienct, and best of all bug-free.

NSIS gives you nothing for free, this is it's biggest asset, it ONLY does what you code, nothing else. It's plug-in system is simply awesome. We use a slightly modifed NSIS (to suit particular "roll-back" requirements, and we have developed a plug-in for additional functionaliy our installs require. The only danger, is once your peers see what's possible they may start trying to get NSIS to do crazy stuff. Kick them occasionaly, to keep them inline!!!

The other benefit, we used to have 3 Installshield Pro licences, you would have to bug a fellow developer with a desktop licence, to use their PC to build your install. With NSIS, everyone can build their own installs.

I know that recommending NSIS, you may be sticking your reputation on the line, but I say go for it, we have not looked back, since moving from Installshield to NSIS!, and I got some kudos for being the driving factor..

We are curring rebasing our cusom NSIS on NSIS2.14, and as expected, things are working perfectly.

Some developers in our company still find it hard to believe that an Open Source and free (as in beer) product can out-class the industry leading software package, but it's true. The only reason InstallShield is still the industry leader, is people have invested time and effort into getting stuff to work, and are too afraid to change.

Good Luck.


Thanks guys. I hope that I won't have to switch. I recently wrapped a build done in IS with NSIS, and my EXE was around 1MB smaller than the original IS build. To me, that speaks volumes. But it seems like it's getting harder to use size as an argument since more and more people are using broadband, and a MB or 2 isn't as big of a deal as it was when almost everyone was on dial-up.

Oh well, I'll keep using NSIS to make not-so-sucky installers (my lack of skills injects some suck here and there), and plan on having my NSIS builds demonstrate that there's no reason to switch.


well, it's only your opinion if you use NSIS or IS but there is one point that ever should be mentioned:

I don't know how the IS Support is, but I'm sure that you have to pay for new releases and trainings you need for them.
Maybe you have to pay for support-requests too.

NSIS and the support you get from the foren is free, maybe not always as fast as it can be in the paid support-range of other products. If I posted a question in the foren it was answered mostly within a few hours and the most problems where solved faster than a day, but let's say two days for really tricky things.

My boss at first said that NSIS locks crappy, needs too much time and doesn't have the abilities IS has.

He is fascinated what can be done in NSIS after I have worked a bit on the Setup, and he really likes the new design
(little modified UMUI) and our customers like it too, because it's know a simple "klick, klick, done" installation.

Sure, it's not a fault of IS that this couldn't be done earlier, but the colleague who worked on the IS setups longer time ago has spent about a half year in creating the setup as it was.

Take a look on the UMUI which looks like the newest IS Setups I've seen.

If you're interested in some help or a overview what our setup does now, you can send me a pm

greetz Davion
(sorry for my constant long posts)


Originally posted by dienjd
But it seems like it's getting harder to use size as an argument since more and more people are using broadband, and a MB or 2 isn't as big of a deal as it was when almost everyone was on dial-up.
Well I think that size really matters. ;) I mean bandwidth rarely is free. For really popular software what will be downloaded hundreds of thousands of times, even a small difference in size (100 KB) can make a huge difference in bandwidth expenses.

Originally posted by {_trueparuex^}
Well I think that size really matters. ;) I mean bandwidth rarely is free. For really popular software what will be downloaded hundreds of thousands of times, even a small difference in size (100 KB) can make a huge difference in bandwidth expenses.
That's true, but organizations/companies with that kind of demand for their software would probably turn to a content delivery network to cache their stuff instead of trying to handle the load themselves and incurring the related expenses and headaches.

But I agree with your point. It's just trying to convince others that can be difficult at times. And yes, size does matter *hitches up belt* :p

The 3 biggest advantages we have seen, switching from IS Pro to NSIS are:

1) stability. Our installs are reliable, and bug free
2) Developer deployment time. Developers can build their own installs, with a single click, no messing.
3) Design time. Making new installs is much quicker in NSIS, the learning curve is much smaller..


I have been trying different installers for years. I started with winzip self extractor 2.2 (strictly speaking it is not an install tool) to wrap existing installers.

Then I went on to Install Creator Pro by Clickteam, which was shareware, so there was a page telling the user this program can't be distributed at the end of the installer.

edit: I also tried making my own installers using VB (wayyyyy too hard).

Then around about this time last year, I discovered NSIS, and I have never wanted to search for another installer system since. A good feature is customizability (which I have customized with my own UI and plugins), and single EXE installers (A big plus).

I have just read the release notes on the new release and I will have to look in to the simple math calculations at compile time (which I can use to calculate the number of pages to skip to get to an abort page).


So you know where I'm coming from, I was using InstallShield for about 6 months. I wrote about 20 different installers with it and eventually got fed up with its awful support for what I considered simple custom tasks. When I eventually figured out how to do some of what I wanted, I still faced problems with InstallShield's flaky behavior.

I was determined to find a replacement for InstallShield, so I looked at WISE. It was also a disappointing experience for me as the IDE itself liked to crash on me from time to time as many others have reported. I tried a few other installers and eventually came to NSIS. At first I was skeptical for many of the same reasons. I figured that a free open-source installer like this couldn't possibly compete with the likes of InstallShield and WISE which seem to be regarded as industry standards for some reason.

The thing is, using NSIS is a COMPLETELY different experience from InstallShield and WISE because absolutely everything is done through scripting which can seem like a daunting task at first. But I used the HM NIS Edit tool to build my first NSIS installer. The wizard took me through the basic steps of creating my first installer, and it wrote the code I needed to get started. The code was a little weird at first but I'm a programmer so I got the hang of it eventually. Furthermore, I found the user-submitted code examples and tutorials very helpful.

I was able to do EVERYTHING I wanted with NSIS. I've been using it on a fairly large scale now for the past 2 years. And I've had absolutely no complaints with flaky behavior from thousands of users now. In the latest release of our completely rewritten software I made the installer first automatically detect if Windows Installer 3.1 is installed, and then download & install it if necessary. Then it'll check if .NET 2.0 (or later) is installed on the machine and download it from Microsoft if it's not. It will also perform a CRC check to ensure the installer itself is not corrupt, assign appropriate file associations for the software, and check if the logged in user has administrative privileges. All of this works perfectly.

On top of that, the final executable NSIS produces is much smaller than an equivalent InstallShield exe. And an NSIS installer performs the installation MUCH faster than InstallShield as well.

So for me it was a no brainer. Once I got over the initial learning curve of NSIS I never looked back. I highly recommend it for any programmer who wants to build good Windows Installer packages for their software.


I love this thread! :D


I love this thread!
Guess why :D

Here is my 2 bits...

I've been working on installers for quite sometime (9+ years now) for a pretty big company -- Tens of millions of users worldwide have specifically worked with my installation projects. Some of you could be using one of my products perched above your monitor...

First, I personally think it is silly to get wrapped up in "what tool is the best" because NSIS, Installshield, etc... Are all tools. You choose the best tool for the task at hand based on its capabilities.

Given this, NSIS has a good active community, definitely strengths and therefore it deserves respectability. It’s also free, although in my company, money for these tools is not a consideration, so I didn't factor this into my evaluation.

As far as weaknesses, well here are some quick observations I noted during my evaluation period. These maybe deal breakers to adoption of NSIS:

1. If you want to do custom UI, you still have to do work creating UI plugins with other tools (like C++). Actually Installshield is the same - you can create dialogs in C++, and add the Installscript handlers (if you know how), so saying NSIS is more customizable then Installshield is moot in this respect. Easiest tool to generate dialogs: MSI with a WYSIWYG dialog editor. Even if it is bland because of several MSI limitations.

2. A biggie for us that nixes serious consideration of NSIS: it doesn't build Vista Logo'd installers. The only way you can build a Vista Logo'd installer is by using Windows Installer (MSI) technology. Wise supports this. Installshield support this both in plain jane basic MSI projects, or their funky hacked "Installscript MSI" based install (which I don't recommend). Of course you can also use the Visual Studio Installer, or Open Source WiX, but Installshield, with a mature editor, is faster for me (in project generation). When I played with WiX, it took me a couple of days to build from the ground up a complex MSI install filling out all that XML, whereas Installshield took me a few hours with the same complexity. If WiX had a real editor (like HM NIS Edit for NSIS), this would be moot.

3. The psuedo-assembly takes some getting used to, and even though I am excited about trying something new, I do get a lot of push back from other install developers in our organization that are more familiar with procedural higher level languages or object orientated programming. Actually, Windows Installer has a similar learning curve, but my fellow developers where forced to adapt for item 2 above.

4. I also don't think it would be easy to use NSIS as a platform to install kernel level device drivers or NT services. There is a lot of system APIs that would be easier to handle in Installscript. Of course, if you create a Win32 plugin, that would work... but with Installscript, you don't have to, calling System APIs (structures and all) is pretty much brainless. As for Windows Installer, that can handle User Mode NT Services natively, just like Installshield. And for drivers, Microsoft DiFx MergeModule, or the DPInst tool, would help.

5. Installshield includes built actions to update XML files, IIS configurations, and a few other things I don't care about, but its there. There might be plugins for this already in NSIS, but since this wasn't something I worried about, I didn't bother to look.

After evaluating NSIS over the past few months, I have decided to give it a go to replace our Web Release Wrapper and continue to use our Installshield tool to build pure MSI based app installation. As I gain more experience with NSIS, I am considering using it to tackle driver installation (building on DiFx APIs in maybe a plugin), even if I noted this as a limit above, mainly because the alternative - a complete self contained EXE - would probably be less flexible.

Hopefully soon, perhaps my company can be added to that list of "Famous" users, since ATI is already doing what I want to do! ( http://nsis.sourceforge.net/Users ) ... :-)

Stability wise, I haven't seen any serious complaints about NSIS based installers. Then again, once I fully migrated to native Windows Installer, all the pure installation issues encountered in the past with Installshield went away too... Then again, I still get lots of complaints about *what* is being installed (garbage in, garbage out... I just move it around! :rolleyes: )

The compression in NSIS is superior, cheap and easy (compared to other $$$ solutions like FEAD or InstallSqueezer), and its multilanguage support is fantastic. We already created some build scripts that can add files to a template at build time, and this works great.

For straight application installers (copying files, register some stuff, make shortcuts, run some EXEs) that don't require Windows Logo, I would consider NSIS a respectable complete alternative to Installshield/Wise/etc.

Hope this was useful.

JB


gripper4hire:
1) You dont need to write a plugin for a custom ui, InstallOptions[Ex] does this, and there are several dialog editors for it ( http://nsis.sourceforge.net/List_of_...form_designers )

2) This is classic MS lock-in

3) Use the logic lib for "if" style programming

4) There are a couple of plugins to help with driver installs and you can call any win32 api with the system plugin


Just a couple comments too.

3) Use the logic lib for "if" style programming

Absolutely.
I just simple DID NOT want to do the assembly style code.
Its just a pain.
The logic lib stuff solves the problem, and for me is mandatory.

Personally, I think it should just become part of the NSIS base, so that the various key words of logic lib, just become key words of NSIS itself.

It definitely would help to not scare off people from trying NSIS, (which almost happened to me, before I decided to go at it anyway)


2) This is classic MS lock-in

Absolutely.

But lets face it, as much as some people may not want to go to Vista, its going to happen.

So why not just give in and do it?

If NSIS was a multiplatform installer, that did Solaris, Linux, AIX, etc installers, you could argue against doing it, (ie, anti-MS factions), but here, we have an installer that is Windows * only, and as much as .msi is a lock-in, its a lock-in that will have to eventually be given into.

Scott


Personally, I think it should just become part of the NSIS base, so that the various key words of logic lib, just become key words of NSIS itself.
this may be a roadmap point for nsis 3...
kichik sometimes thought about switching from nsis proprietary code to some "real" language like python (and i'd love it). but this is just a thought...

> kichik sometimes thought about switching from nsis
> proprietary code to some "real" language like python
> (and i'd love it).
> but this is just a thought...

Wow, I did not know that!
Put me as a 2nd vote for switching to Python!
(Not that my vote matters of course) :)

Obviously its a huge and complete rewrite, and a whole lot of time would have to be invested in doing that, but holy cow, would that just change EVERYTHING.

To be able to exploit all the tons and tons of existing Python scripts would just be even more of a bonus.
:)

Scott


That's a bit inaccurate. Having Python as the scripting language would make every installer created with NSIS an instant bloatware. Python25.dll is 2.5MB, and that's without all the libraries.

What I was considering is switching the language in which makensis is written for easier development.


For straight application installers (copying files, register some stuff, make shortcuts, run some EXEs) that don't require Windows Logo, I would consider NSIS a respectable complete alternative to Installshield/Wise/etc.
I'm not an Installshield/Wise/etc guru however I'd say you need to cover a long distance until you come up to the point to realize that nsis is completely different hence you're confusing apples with oranges.
Reviewing your comments I'm considering that nsis main "disadvantage" is that it is free therefore it has difficulties to fit in a world where respectable is a matter of price.

the big point is, that nsis does nothing you do not explicitly tell it to do.

nsis is small (no >1mb overhead like installshield/...) and it does not spread thousands of GUID entries, files and other crap to various directories and registry keys all over your system.

a simple uninstall regkey and another one for application specific settings is more than enough.

this is why i PERSONALLY hate installshield/wise/... and love nsis :)


i do belive ati started using the nsis from my remarks on driverheaven.net (hey i could be wrong, but i had emailed them too).

they officially dont do any driver installs using the engine, but they dont know how to use the driver plugins to do what they want. if they did, there install would be much smaller, but it was needed to make it smaller than it was.


the first time i was in need for installers, was when i was collecting huge amounts of quake2 maps, models and mods. the most obvious choice back then was winzip sfx, i don't have to mention its limitations. then i stumbled over a free installer (and i forgot its name), which could do a lot more already.

around 2000 i needed installers for my winamp visualizations (avs) and do to the connection with nullsoft i stumbled over pimp/superpimp, which later became nsis. havn't used anything since. nsis allowed me to simple, but very powerful/comfortable setups. just out of fun i started adding more features to my installer, such as controls to configure winamp for the installed avs presets. that time i figured, that nsis could be used for a lot more than only installers, so i used it for small tools such as runwithparameters or clickfont. actually i'm solving a lot of small tasks in nsis now as it has a nice and simple syntax and is much more than a ms batch file. i used it at work to split a comma-seperated table into multiple files.

some irony comes in when i talk about pimpbot. i was not only sick about scripting new installers for all the winamp plugins i did, i was even more sick about seeing others to use winzip sfx and such to distribute their work. so i started on pimpbot, which is a frontend for nsis that is written in nsis itself. it allows anyone to do create equally powerful installers for their winamp avs presets than then one i used already - within a few clicks.

i love nsis!


somebody sticky this! :p


Yep, sticky it plz ;)