The decisive goal of each programming language is to keep it effortless for the user and conceal the complexity in the implementation. The intact notion of theory in computer science verbalizes the abstraction by keeping it easy to the user. Concept is goal driven to optimize it to the computer architecture.
We all speak of domain specific languages today. Why is not my language customizable? It should be as small as possible which can grow as large as possible. User bears in mind very few details and grows the language in his own terms. Why there is a restriction that execution has to begin with “main”? Why is writing an interpreter for my required domain so complex? Is it that the limitations of a language are covered up by adding more features than providing the abstraction?
We never realized that the productivity from technology did come with side effects. Look at this arresting instance of a telephone company customer care. Earlier people used to sit at customer care and handle the customer queries. Technology carved in and the process got automated. Now we snoop to automated voice and elect to choose for the required service. Look at the process in monetary terms. Earlier company used to pay for person who used to sit at customer service. Now we pay for using the service and listening to automated voice. Where is the benefit heading?
Why do most applications fail to reach the audience? Too many features have only made the process slower. Some applications are in use, only because we are mandated to use it or there is no enhanced version out yet.
Software’s have created inter-dependencies. I need to use some product only because my system does not support the format. The mandatory usage to one makes his connected also to depend and bring into play the same.
At times, they come as a solution to a problem and thereby introduce many other tribulations. Once when we are into the system, we get dependent and drive the tradition. They come with a never ending manual documenting what doesn’t work; as the limitation of the product and never say that they were the shortcomings. We would have never purchased a washing machine if the vendor told us he would deliver the components in installments.
Yes, technology choices make a huge difference. I don’t intend to run a strike over software usage. All the world changing stuff seem like they need a polishing. What we need are better interactive systems. Oh yeah! We need better engineers!
What I mean by better engineers is the better designer, better inventor, better programmer and many other betters. That’s why you should learn programming. That’s why you should hop in. There is a lot to be discovered yet. The computing society needs your talent and contribution.
That’s why you should Program!
You can read more here: Design of a Programmer