I recently bought a 3D printer called Dreamer NX from FlashForge. The dealer told me to use FlashPrint software that belongs to the FlashForge printer manufacturer. But, many people advise me to use Ultimaker Cura. Are there many differences between these two software packages?
The commonality of the 2 slicers is that both are developed and maintained by a printer manufacturer. The largest difference is that FlashPrint is closed/proprietary software, while Ultimaker Cura is released in source (so-called open source project) to the public; this is valid for both the frontend (Cura) (Graphical User Interface) as for the slicing core (CuraEngine). Basically this implies that there is a larger community developing and bug fixing the software. Also, FlashPrint is exclusively available for the FlashForge printers while Ultimaker Cura can be used for different brands as well.
Statement from www.3dprms.com:
The Flashpoint software is an in-house software program developed by FlashForge for use exclusively with the FlashForge 3D Printers
Statement from the Cura wikipedia:
Cura is an open source 3D printer slicing application. It was created by David Braam who was later employed by Ultimaker, a 3D printer manufacturing company, to maintain the software.
As FlashPrint is proprietary, it has no shared source repository and can therefore not be based on existing forks of software that are released under e.g. some version of the LGPL license as this implies that you need to share the amendments you made to the software, otherwise you would be in violation:
...any developer who modifies an LGPL-covered component is required to make their modified version available under the same LGPL license..
Note that discussing the exact differences in features between the 2 software packages (e.g. implementation differences of model support structures) would be more fit in a forum style discussion board rather than on a Stack Exchange site.
Perhaps this is veering out a little bit from being an answer to the specific differences between software functionality, but one important difference that shouldn't be overlooked is that whatever you learn with Cura is applicable to all FDM 3D printers.
Surely some setting tweaks you do might be specific to the properties of your particular printer, but a large amount of them, like choices of infill patterns, shells, adaptive layer heights, using secondary models as custom support and infill masks, breaking up models into multiple pieces for printing, etc. are completely printer-agnostic. If you learn to do these with software that's only usable (or at least only meant to be used) with your particular brand of printers, you'll have to translate/relearn if you later want to use a different printer, or help someone else who has a different brand of printer. If you learn with software that works with any printer, everything you learn is immediately applicable to different printers.