Programming languages are tough and rigid, esp. Web Dynpro
This blog is a collection of some of my thoughts about computer science and programming.
If some of the readers were wondering why such a generic topic is placed in the WD Java area, I had to choose a suitable place to place this blog and my current area of work is Web Dynpro Java. Hence, choose to write the blog under Web Dynpro Java. (I also feel restricted that this blog is restricted to users viewing the Web Dynpro Java space).
During a technical discussion with my colleague, we shared the thought that ABAP developers are benefited by the abstraction provided by SAP unlike the Java developers who have to explore in detail from the ocean of open code to fulfill the requirement. In return, a java developer gains a better understanding of the language and is better skilled than the ABAP developer.
This was my strong belief(a bias against ABAP) that ABAP is too simplified and allows little freedom for developers.
My lack of knowledge in ABAP allows me to brand it as inflexible. The same applies to the ABAP developer who feels the same about Java. In a discussion with a senior ABAP developer, the conversation went as follows:
Me( from here on called as WD JAVA, which is how people feel, an endangered/unwanted species in our team): Can you send the excel in form a file type maybe binary. This way I can give the file directly to user(as excel) instead of receiving the huge amount of data in table.
ABAPer: I wonder why we can’t feed an internal table(table of data) to something(like a magic box) and get an excel in return. I can do that in ABAP using function called GUI_DOWNLOAD. Please check it in Java. ( undertone: SAP gives it to me, maybe java also does it ).
WD JAVA: But, I always have to loop through table data, use external library, build each row and then give it to user.
ABAPerr: Hmmm. (A long silence. )
The thought about java in the ABAPers mind would be that its too rigid and complicated for a develoepr to fulfill the requirements.
All these thoughts were a thing of past till I watched the presentation by “Gerald Sussman” ( Author of the book Structure and Interpretation of Computer Programs). The presentation was mostly about mathematics and physics, which went way over my head except for the last slide.
The text in the last slide was as follows:
A computer is like a violin.You can imagine a novice trying first a phonograph and then a violin.
The latter, he says, sounds terrible. That is the argument we have heard from our humanists and
most of our computer scientists. Computer programs are good, they say, for particular
purposes, but they aren’t flexible. Neither is a violin, or a typewriter, until you learn how to use it. –
Marvin Minsky, “WHY PROGRAMMING IS A GOOD MEDIUM FOR EXPRESSING POORLY UNDERSTOOD
AND SLOPPILY-FORMULATED IDEAS”
My brain cells tingled. The words were profound and I was sure that its deeper than it sounds. I started reading the essay by the professor Marvin Minsky.
The essay beautifully addressed the fallacies that exist about computer programming. The essay elaborates how programming is not about rigid set of rules. It also contradicts the suggestion/belief that computer does only what we say.
Programming comprises of form and content. The form ( syntax ) is rigid but the content is free.
It shattered my thought against a particular language or science. Just because of our lack of understanding we tend to brand a language in-flexible or rigid. The same applied to computers or any other field in life.
The programming language is limited in the form of expression just like our spoken language. In spoken language, grammar restricts the form of expression but not the thought. The idea is to bring in consistency and avoid ambiguity. Isn’t it desired to avoid ambiguous sentences in our documents? The same rule applies in programming.
To obtain the desired content or result we need to have clarity in our idea or requirement. When, the requirement is vague or non-specific then its foolish to blame it on the computer/system/software/programming language.
We need to understand the rules of the game and only then can we enjoy it. Its like baseball player saying, how can two teams play over 5 days and still have the game end up in a draw(with reference to cricket).