Background
I almost don't have free time, but, anyway, when I can, I have a look at the Computer Graphics market and look for software from all niches: researches, open source projects, free or commercial programs. We don't learn just from books, periodics, articles and our own studies and practices: see what other people are developing can teach us as well.
Very recently, I downloaded a relatevely well known open source graphic software to have a test in the newest version with kind of 1.5MB. Trying to install it, I got a very disapointing message: "... requires the X framework ..." just before the installer abortion. Here "X" replaced the name of a software package that, no matter if it's free for now, comes from a COMMERCIAL company.
So, trying to get the software ready to use yet, I downloaded a ~ 2MB executable from the company site. You can't imagine my surprise when I realized that I had just downloaded a remote installer. It have shown me a licence (by the way, not very good for the user) and told me that I would download nothing less than 66MB. YES, 66MB OF LIBRARIES AND ENVIRONMENT SOFTWARE to use an absolutely not advanced CG program. How can it make any sense ?????
This aparently small episode really bothered me and reminded me how many "open source" softwares use free but commercial softwares to make things easier. Also there are several open source softwares that depend on big and heavy libraries to use just a small part of it. I remembered how many free softwares are made over tons of other free softwares (libraries or not) like black boxes, even if these lower level softwares are without any improvement for years. They have all the source, but this "control" sensation can be very illusory: eventually nobody will be able to mantain that code, but the original coder.
By the way, my experience as a developer have shown me that most open source libraries have NO useful documentation for developers, neither merged with the source code itself. I know some very well documented open source softwares, but unfortunately they are rare.
In fact, most programmers see open source software as a chance to get a free lunch: free, (with some luck) good pieces of code to prevent them from code the hard parts of a new software. I'm not against software reuse at all, but, if you are a programmer, probably you know 95% of developers never ever have a look at the source of these open programs/libraries they catch over the Internet. And worse: if something goes wrong, like an unexpected bug or a misunderstanding, they simply try to find other open software (unless if a question in a forum can solve their problems in a few days).
Suppose you develop a software trusting in a non-trivial library (free or commercial). What about if you find a bug in this library or your program has an unexpected behavior? What about if you need a non implemented feature? And if the library doesn't work in your new environment?
Maybe you think all of this is fool, because you just use free software from big organizations or from a large community. If so, then here comes the more important question: how will your program have any competitive differential if the hard part of your software is exactly the same one used by hundreds or thousands other programmers around the world? Novice developers usually are very optimistic, but very experienced ones know that sometimes these questions have bad answers. (Obs: when talking about a software that should strictly implement a standard or protocol, worry about differentials could make no sense, since the software has a good performance and has no bugs.)
I don't make everything from scratch just to learn and prove my researches. I want to:
- dominate the science and the technology I use to develop;
- understand everything around that matters;
- have tools as powerful as I can provide;
- be able to extend any part as I desire.
And I don't want to:
- use what I don't understand: I don't like "magic";
- marginal dependencies;
- black boxes;
- face bugs that would force me to study code from others for weeks and weeks to (maybe) fix it;
- don't be able to make a feature because I don't know how to improve a lower level software;
- be forced to make things the same way everybody makes.
Well, Computer Graphics is my business and I make Picture to People from scratch. I don't think eveybody must do everything from scratch all the time. In my case, tackle all the challenges from the very low to high level is the best way to produce a software having the power I intend. Anyway, my knowledge needs to be very deep and make everything is a very good way to achieve high improvement in theory and practice.
Leonardo C. de Almeida - P2P developer
-
News, Tips & Support
-
-
Photo Effects
- Photo Effects
- Vexel Drawing Photo Effect
- Art Vexels
- Real Pencil
- Photo Stone
- Light Photo Effect
- Typographic Photo Effect
- Cartoon Photo Effect
- Artistic Mosaic Photo Effect
- Photo Graffiti Effect Generator
- Online Drawing Photo Effects
- Photo Sketch
- Photo Colorful Drawing
- Realistic Pencil Sketch Photo Effect
- Realistic Drawing Photo Effect
- Online Paint Photo Effects
- Classic Paint Photo Effect
- Oil Paint Photo Effect
- Watercolor Paint Photo Effect
- Impressionist Paint Photo Effect
- Modernist Paint Photo Effect
-
-
Text Effects
- Procedural Text Effects
- Online Text Effects
- Online Light and Glow Text Effects
- Online Metallic Text Effects
- Liquid Text Effect
- Smoke Text Effect
- Stone Text Effect
- Cloud Text Effect
- Water Text Effect
- 3D Graffiti Text Effect Creator
- 3D Text Effect Generator
- Advanced 3D Text Effect
- Country Flag 3D Text Effect
- Chalk Text Effect
- Grainy Sand Text Effects
- Rainbow Neon Text Effect Creator
- Transparent Liquid Text Creator
-
-
Special 3D Text Effects
- Realistic 3D Text Effects (All)
- Artistic Text Effects
- Abstract Text Effects
- Decorated Text Effects
- Floral Text Effects
- Geometric Text Effects
- Painted Text Effects
- Splash Text Effects
- Colorful Text Effects
- Psychedelic Text Effects
- Rainbow Text Effects
- Damaged Material Text Effects
- Cracked Text Effects
- Grunge Text Effects
- Rusty Metal Text Effects
- Masonry Text Effects
- Brick Text Effects
- Concrete Text Effects
- Marble Text Effects
- Stone Text Effects
- Metal Text Effects
- Golden Text Effects
- Metallic Text Effects
- Silver Text Effects
- Steel Text Effects
- Nature Based Text Effects
- Fur Text Effects
- Ice Text Effects
- Leather Text Effects
- Lichen Text Effects
- Sand Text Effects
- Water Text Effects
- Plant Text Effects
- Flower Text Effects
- Grass Text Effects
- Leaf Text Effects
- Wood Text Effects
- Bamboo Text Effects
- Wooden Text Effects
- Special Material Text Effects
- Fabric Text Effects
- Glass Text Effects
- Paper Text Effects
- Plastic Text Effects
- Extra Text Effects
- Camouflage Text Effects
- Food Text Effects
- Letter Text Effects
- Tech Text Effects
-
-
Typography
-
-
Utilities
-
-
Colors
-
-
Tutorials
-
-
Development
- Background
- Guidelines
- Maccala
- Features
- Future Improvements
- Pixsycho
- Features
- Future Improvements
-
-
Project
-
-
External Links