designing in object programming

rgb192
rgb192 used Ask the Experts™
on
I like learning object oriented php

but do not want to be bogged down by html, css, jquery, javascript, ajax

I know I can use command line php but if a client is paying me; client usually wants artwork.
A css designer will draw a picture of an expected form and I am forced CODE the html and css to the exact layout of the picture

then the client states the the textbox is 1 inch (.5 cm) too tall.



do other object oriented languages force me to learn so much design software


Please add many other object oriented programming zones
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Most Valuable Expert 2011
Top Expert 2016

Commented:
In my experience with object-oriented design, we used almost no design software at all.  We used some entity-relationship diagrams and class-responsibility-collaboration cards (actual 3x5 cards).  Magnet boards and sticky notes are often good enough for prototyping.  When it comes time to present the designs to the clients, a little more formality may come into play :-)

See also
In a couple of embedded c++ Projects we used IBM rational Rhapsody to draw UML OO diagrams, which we would present to the customer for review.
 After review, I pressed the button and it generated thousands of lines of C++ code.
I have just reviewed this YouTube playlist of 95 videos explaining UML. It goes well beyond the use case diagrams and class diagrams and object model diagrams and state diagrams and sequence diagrams that I used on my projects.
https://m.youtube.com/#/watch?list=PLD4EF3E3AD055F3C7&v=RRXe1omEGWQ

 Here is a IBM rational Rhapsody tutorial that I plan on reviewing to refresh my memory.
http://www.ibm.com/support/knowledgecenter/SSB2MU_8.1.5/com.ibm.rhp.cpp.tutorial.doc/topics/rhp_tu_intro_cpp1.html
I have learned "hands-on" OO programming on Perl. However, Perl in not excellent for the purpose.

I have first met the OOP with Smalltalk. However, Smalltalk is kind of strange. I would say almost experimental.

I have first met object when learning simulation topics. Modula existed at the time, but it was not that spread at the time because the computers were not found on every corner. Basically, I have learned about the object "abstractions" that were actually simulated using a non OO language.

I have learned more about OOP when learning about parallel and distributed computing -- also at the time when suitable hardware was available mainly in other countries, and mostly only for military.

I have lived the era when some considered "pure OOP" languages better than "not so pure OOP" languages (called hybrid).

There is always some hype when new idea emerges. New words are invented, new acronyms are introduced -- often by commercial companies to make them look "better". The truth is that to learn OOP means to get some kind of enlightenment that cannot be replaced by memorizing -- as in any other area. The series of AHA! moments that you can get when good teachers push you in some directions "to get it on your own". Or the series of AHA! moments when working hard alone -- blood and tears.

My personal choice for programming would always be hybrid languages (that is "not so pure OOP"). In my opinion, they are more natural, and it can help you to get the AHA! moments. The problem is that you need some project that requires some mental effort. And it should also be more complex than simple. And it should be "entertaining" for your imagination -- in some sense. And you should be willing even to learn some theory -- even from popular articles. So, there is more things to put together, not only the language...

Anyway, if a single language is to be chosen, I would choose Python. (I am willing to discuss and compare with other opinions.) This is good also for beginners. And it is useful even for mature programmers.

For the experienced programmers, the second language would be C++ -- its modern incarnation with C++ Core Guidelines, without the older mess and without the C-bias (but not throwing C away completely).
CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

Most Valuable Expert 2017
Distinguished Expert 2018
Commented:
Your question seems to be about interface design.

With Web projects it is possible to separate the interface and business logic but ultimately you need someone to do the interface. If you are asking if other environments allow you to build the interface more easily the answer is a tentative no. Ultimately everything is rendered to HTML which requires CSS, JavaScript etc. The norm is to have interactive websites which means JavaScript (or a JS library), AJAX etc.

Design is something you either do or copy (if you have a designer) - but you still need to code it up.

In my experience tools that allow you to "draw" interfaces produce lousy underlying code. If page load and extensibility are important to you then you are going to have to jump into the UI coding pool at some point - unless, as I have already said, you can find someone who can do that part of it for you.

Different environments can help with the scaffolding of the interface but the actual positioning of elements, layout, responsive design - no tool I know of can intuit that for you - you need to do it your self.

The solution I have found is to not get elaborate with the interface. I build mostly business facing applications (rather than client facing) so I go with libraries like Bootstrap (or a BS derivative) and just use the interface elements out of the box - no need for design - just add the class to the div or similar and ping you have a panel - or a responsive horizontal form.

Anyone who starts getting picky about how many pixels to the left a form must move is still operating in the previous decade in my view.
Commented:
From what I understand from the OP, rgb192 does not have a problem with the programming part, but with the interface part.

Regardless of what you use, you will have to present data to the user/customer.
What you (and most web programmers I know) try to do is all. UX, interfaces, usability, logic, DB design, etc.

At some point you'll have to specialize. Don't like coding web interfaces? Get someone else to do it. You do whatever you're great at and let the rest of your team do what they are great at.

HTH,
Dan
I may have misunderstand the original question. So, to add. The visual side of OOP is only one application of the OO principles -- that is widgets and others. This way the tools for enhancing your imagination may very differ from what you need if you work with more abstract form of objects. Anyway, the key task of programming is to simulate what the end user wants. This way, the approach from the end-user point-of-view may help you to understand what is good and what is better. My experience is that the goal should be as clear as possible to both end-user and to the programmer before the code is written. So, collecting the core features in the form of user cases, possibly some descriptions of the wanted behaviour (that may lead to writing test) all these things may help to document the latent solution. It may also help to avoid "overcomplicated" and "overengineered" solutions that may be more difficult than necessary, more difficult to manage, more difficult to maintain...
Top Expert 2016

Commented:
Programming object oriented or not is simply plumbing. Design is an entirely difference discipline. A programmer doesn't need to be a designer, nor a designer a developer. The designer can use tools i.e. Visual Studio Blend to create the layout of the output and then pass the design to the developer who will add all of the plumbing from the input to the output.  I've worked in companies which had a "graphics art department" (as little as one person) that would do this leaving the programmers to concentrate on the logic and the 'plumbing'
ǩa̹̼͍̓̂ͪͤͭ̓u͈̳̟͕̬ͩ͂̌͌̾̀ͪf̭̤͉̅̋͛͂̓͛̈m̩̘̱̃e͙̳͊̑̂ͦ̌ͯ̚d͋̋ͧ̑ͯ͛̉Glanced up at my screen and thought I had coded the Matrix...  Turns out, I just fell asleep on the keyboard.
Most Valuable Expert 2011
Top Expert 2015

Commented:
At some point you'll have to specialize. Don't like coding web interfaces? Get someone else to do it. You do whatever you're great at and let the rest of your team do what they are great at.
Tell that to all of the job postings seeking "full stack developers." It's much harder to specialize these days considering how fast technology is advancing and how fast demand is growing. Certainly, you'll get the best product from a group of specialists, but specialists aren't cheap. Many businesses will sacrifice "best" for "good enough" at a cheaper cost.
Most Valuable Expert 2011
Top Expert 2016

Commented:
@käµfm³d: Plus One for that piece of wisdom.  One of my friends who runs PHP Architect says it this way: Good programmers create great programming.  Great programmers create good-enough programming.

Commented:
I agree most businesses look for cheap labor. "Full stack developer" simply means someone who is OK-ish in all phases of a web project, but not necessarily good in anything.

But in programming, like any other field, doing something you hate (or dislike) over and over again is not how you grow.

And being employed is not the only way to get a living.
As a freelancer you have the option of subcontracting some of the work.
As a business owner you have the option of hiring "full stack developers" and use them according to their skills inside the team.
greetings rgb192 , , , ,   I see you ask about -
     "do other object oriented languages force me to learn so much design software"

From what I have seen and or used, my view would be that there is no "forcing" for using or learning any programming operation and-or "User Interface" design. But as you know, the PHP environment is NOT a Object Oriented , but a mixed or hybrid environment. So you say that -
    "but do not want to be bogged down by html, css, jquery, javascript, ajax"

With that, to me you seem to miss the advantage and strong point of the "Object Oriented" development, as If you are in PHP and do not want to do much in the web browser techs, then you search and find a PHP CLASS, that someone else has made, that does this "design software" using html, css, JS , and then you just add that CLASS to your project, and then use it's objects, to add sections or elements to the page GUI.

There are so many people now, making so many PHP "add on" CLASSES , that do so many different things in Web interface, like <form> or menus , or ajax , or responsive and or  so many other things. In OOP it's about using "tested and refined" other CLASSES (not yours) to streamline (Rapid Application Development) by RAD , so you do NOT deal with all of the smaller parts and pieces of HTML, CSS, JS , but just do -
    $menu = new GreatMenu ( 5 , GM_BLUE);

and let the  GreatMenu  Class take care of the details of the menu browser code.

Author

Commented:
thanks all

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial