tags:

views:

87

answers:

7

For example, in c# access modifiers implement information hiding by default (by giving classes and fields the most restrictive access possible by default).
In ASP.NET you have app_code and app_data as libraries "built-in" in your web site.
ASP.NET MVC takes it another step and "makes" you use MVC.
I don't know how it is in different languages.

Do you think concepts like single responsibility, strong cohesion, separation of concerns etc. can be further embedded into programming languages and technologies?

Edit: Maybe I should have asked- "Can you think of a way for progarmming languages and frameworks to embed these concepts?"

I'm asking for two reasons - first is curiosity. And second is that I think answers to this question can make "rules of thumb" about how to implement these concepts.

Thank you.

+1  A: 

Do you think concepts like single responsibility, strong cohesion, separation of concerns etc. can be further embedded into programming languages and technologies?

No. Only a human mind can work this out.

Developer Art
A: 

Besides helping you getting your job done it's a job of almost every framework out there. Check what Ruby on Rails, Django, JEE do and you'll see exactly what I'm trying to say.

You may find it implemented more frequently in frameworks written in dynamic languages since they allow easy extension of the language by writing DLSs.

Boris Pavlović
+1  A: 

Is as I always say: "The language can only show you the path, it should be your choice if you follow it"

This is where you skills as a programmer can make a difference.

Calin
+3  A: 
stakx
A: 

Do you think concepts like single responsibility, strong cohesion, separation of concerns etc. can be further embedded into programming languages and technologies?

The Eiffel programming language is a good example of a programming language that was designed specificially around these more general concepts.

Martin Liversage
A: 

I remember starting a job by sharing an office with a consultant. I remember him calling a friend with with questions like "Can you explain how Windows creates a process? Here it says that it also create a thread, how does that make it different from UNIX?" He liked words like "best practices".

Better to stay away from languages that enforce them.

HandyGandy
Even if so, there are ways to "encourage" best practices, like the default access modifiers example I gave on the question.
Oren A
A: 

Encourage -> yes.

Force it-> no.

I've seen a couple very awful sources in RoR and asp.net mvc.

eglasius