I never know when they talk about "Wolfram" whether they mean the company or the person. And then I think what an egomaniac one must be in order to name an invention/creation after oneself.
1 Fear of losing control (over their vision and centralized design of computation and representation of
the Wolfram language).
This is just false, as they would be in control over their project even if open-sourced.
Forks would be possible but would not influence the original source (if not wanted).
2 Fear of lack of innovation.
I cannot see why this would be true.
3 Fear of ignorance towards hard/boring dev. topics.
I see how that could be a problem. One solution would be funding (s. point below)
to pay devs for the boring stuff.
4 Fear of lack of funding (because dev. costs money... surprise).
Their main point (and probably a big issue of a lot of other companies
thinking about open-sourcing their software) and a very valid one indeed.
So I guess they just have not got a business modell ready involving open-sourcing their software.
Wolfram seems not so much against open-source from a philosophical point of view but they
clearly think they would not be able to fund their dev. efforts without their software revenue.
@Wolfram: The most important assets of Wolfram are the devs. working there, not the software itself.
Given this huge knowledge base around the topics covered by the Wolfram language, the support-business-modell
could very well work! Also from a philosophical point of view: Wolfram claims to unify disparate
fields of all of science which kind of is a scientific achievement on its own. Scientific results
should be available for all people of our society.
btw. I asked the question a year ago whether this whole "boss as a service" was viable and I think it is one of those things that you can't really imagine until you tried it out. I am glad there is now the opportunity to do so ;)
- Make something you need and would pay for. If it already exists somewhere, find a good reason why you need to do it at all (and not just use the existing thing).
Do not get blinded by enthusiasm.
Think on your own.
I had a startup, co-founder persistet on bad tech, never stood up to him. Startup failed - and all for the wrong reason. I basicly had two choices: speak up or leave and I did neither, dragging along. I will never do that again!
I see this more clearly in hindsight. By pure accident I ended up in software development: My mother found this university, I did not have anything else on my mind at the time, just started studying, graduated and here I am 10+ years later professional sw dev. In school I was much more into arts and crafts so I never really anticipated that I would end up. All because of a small decision back then... ridiculous really ;) Some people really think they are in control of their lives ...
I would argue it is not about the little facts, such as specific sorting algorithms, but its more about learning how to approach a CS task, how to abstract and how to reason about code. The colleagues I know that were not as lucky and could not study CS, often they just hit a "wall" when they would have to argue about a certain SW architecture for example or when they were presented with an abstract problem, such as implementing some generic behaviour. And learning how to do this is a process that continues after the study, but it is important to get a basis. It is hard to really be specific here but if you do not have a good foundation of knowledge in a field, you will sooner or later (if you are not self-delusional of your abilities) regret it.
Studying does involve a big chunk of practial work, so you get both theory and practise. If you don't know the basics it would be very hard to do any "real-world development". So why do you think, 4 years are better spent trying desperately to coble some scripts together with a boss behind you than spending those 4 years surrounded by experienced teachers and like-minded students in an environment that focuses on learning?
I'm going to try to comment like this, here goes...
Why do you think 4 years are better spent paying to cobble together scripts for unnecessary assignments the way a can't-hack-it-outside-academia teacher wants who is not incentivized to do the best and is out of touch with real-world development instead of spending those years surrounded by experienced and like-minded peers in an environment that focuses on making tangible accomplishments and making money?
I hope it's clear how ridiculous discussing things this way is. There are benefits on both sides, and a reasonable person would respect that.
Except that what's being talked about here is a Computer Science degree, not a Programming or even Software Engineer degree. While the former does generally involve learning some programming, its focus is more about understanding the way computers and programming languages work from the fundamental theory on up.
So if you're going to criticize it, at least get it right: it's not 4 years cobbling scripts together for <insert tired "those-who-can't-do-teach" stereotype here>, it's 4 years learning theory and fundamentals when you could be practicing the marketable skills you'll be using more directly.
Personally, though, I've found that while nearly none of the specific programming techniques I learned in my Computer Science degree have been applicable to my job since, the fundamental understandings of the underpinnings of the field have made it vastly easier for me to pick up new languages and techniques as I need to.
Thank you for stepping in and trying to clarify. English is not my native language - that is why I sometimes struggle to explain myself better. The most valuable stuff you learn in CS study is the theory and that is exactly the stuff you miss out in an actual job (exceptions are possible of course).
This seems optimized for creation of small apps (and is also presented very well). But what striked me watching the intriduction video: When you revisit your a written app, it seems hard to understand whats going on and also hard to get a feel for if all functionality have been implemented and works. How does testing your app with this tool work? How does it help with maintaining a written app to lets say add a new functionality (when you have forgotten all about where your data is stored, where it is read from, what your queries where when you wrote them etc.).