Programming in a language vs programming into a language reply to
Please reply to another post with a quality response. Simple replies like “I agree with you” will not be considered enough for participation in the discussion.
Based on David Gries definition, programming in a language limits the developers’ ability to the capability of the language used. This is true in the early days of the software development world, where programing languages such as Visual Basic and Java are still in their infancies. These languages were not feature-rich as nowadays. Design patterns were still in the early stages and they were not well understood. Trying to achieve what David tried was difficult. Separating of concerns where an application is divided into security module, persistence layer, business logic, and the UI layer, were still little known to many.
It was the limitation of the concept like programming in a language and many other limitations that drove software developers like David Gries and others to come up with new concept like programming into a language. Programming into a language is a concept which a developer finds what he/she needs to code a certain task is not available in the language used and therefore he tries to come up with new coding pattern to achieve his objective. These needs drove to the invention of the great design pattern such as Model View Controller, where the Model represents the data, the Controller performs operation on the data and presents to the View. The View displays data to the user and allows certain users to interact (button click, save, delete, etc) with the Controller in the back end.
The needs for programming into a language opens up new development concepts such as open source coding, which a developer or a team of developers develop libraries and store in a public access network like GitHub. Any developer can use these libraries and add more features to it. To add a new feature to a library, a developer needs to checkout the source code, add the new feature and submit the changes to the repository for approval. If a developer finds a defect in the library, similar process is taken to fix the issue.
Programming in a language has its merits. It provides language features that are carefully designed, coded and tested for the community to use. Programming into a language on the other hand, allows the community at large to share their ideas and therefore enrich the language. However, all contributions must be carefully scan to avoid bad code or code with bad intention being incorporate into the language.
Programming into a language is a creative way to garnish new ideas from the community, which allows everyone to make contributions.
We have to strike a balance between the two concepts. I think each concept has its advantages and disadvantages.