One-Way Programming
-
I got the sense long ago that "form generators" and report generators represented "code-less" programming; which are mostly counter-intuitive and represent a steep learning curve (see Q&A). I see the new wave of code-less programming as a lot of people putting data in, but not being able to get information out.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
Gerry Schmitz wrote:
I see the new wave of code-less programming as a lot of people putting data in,
They attempt to generalize some problems that seem to have similarities. But the actual solution needed is actually different in each case. Obviously since otherwise there would likely only be one solution. Thus the generalization fails because it can only account for the similarities and not the exceptions. And adding the exceptions becomes so complex that it overrides any potential savings that the generalization might have achieved. And the problem becomes worse with time because more exceptions are needed at the same time the legacy system becomes more dependent on supporting the original use. On top of that you then also have consultants/pundits that base their careers and promoting the specific solution and tout the claimed benefits without explaining or perhaps not even understanding the the likely pitfalls. But you can often see the same thing happen in coding APIs. That is why, for example, if you need to use a 'new' database application layering technology the first thing you should always look for is how to do pass through SQL. If it is complex or even worse does not exist then you should discard it.
-
Gerry Schmitz wrote:
I see the new wave of code-less programming as a lot of people putting data in,
They attempt to generalize some problems that seem to have similarities. But the actual solution needed is actually different in each case. Obviously since otherwise there would likely only be one solution. Thus the generalization fails because it can only account for the similarities and not the exceptions. And adding the exceptions becomes so complex that it overrides any potential savings that the generalization might have achieved. And the problem becomes worse with time because more exceptions are needed at the same time the legacy system becomes more dependent on supporting the original use. On top of that you then also have consultants/pundits that base their careers and promoting the specific solution and tout the claimed benefits without explaining or perhaps not even understanding the the likely pitfalls. But you can often see the same thing happen in coding APIs. That is why, for example, if you need to use a 'new' database application layering technology the first thing you should always look for is how to do pass through SQL. If it is complex or even worse does not exist then you should discard it.
Correct, such tools can only "address the low-hanging fruit" -- which is not the difficult part of the problem. We don't need help with that, we can do that easily enough ourselves, thank you very much.
-
I got the sense long ago that "form generators" and report generators represented "code-less" programming; which are mostly counter-intuitive and represent a steep learning curve (see Q&A). I see the new wave of code-less programming as a lot of people putting data in, but not being able to get information out.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
One way... yes. Straight to the bin :rolleyes: :-D
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
-
I got the sense long ago that "form generators" and report generators represented "code-less" programming; which are mostly counter-intuitive and represent a steep learning curve (see Q&A). I see the new wave of code-less programming as a lot of people putting data in, but not being able to get information out.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
Quote:
I got the sense long ago that "form generators" and report generators represented "code-less" programming; which are mostly counter-intuitive and represent a steep learning curve (see Q&A).
I dunno, the approach that Delphi and C++ builder took was a very maintainable approach; I've never got the feeling that it way a one-way generation with no way for the programmer to change it. Might be something there. At any rate, it's funny that you should post this now; I am reading it as I am in the middle of a personal project which does code generation :-). I'll find this thread and post a link when I am done in about 3 weeks.
-
Nothing worthwhile can be done automatically.
Quote:
Nothing worthwhile can be done automatically.
I disagree; there are some very unique things that are better done by code generation tools. See Flex and Bison, for example (generates C). Or Antlr (Generates Java, C#, etc). Or CMake (Generates Makefiles). Swig (Generates everything)? On the other side of the spectrum, there are some very stupid things that are automated; ORMs, for example, get you 90% of the way, but that just means that you need to know both the specific ORM syntax and the SQL.
-
Correct, such tools can only "address the low-hanging fruit" -- which is not the difficult part of the problem. We don't need help with that, we can do that easily enough ourselves, thank you very much.
PIEBALDconsult wrote:
We don't need help with that, we can do that easily enough ourselves
So you don’t create subroutines either, right? After all, if you know how to write the code you can do it again easily enough. Bonus: no function call overhead. The value in automating what you call low-hanging fruit is that it saves you time and reduces opportunities for error introduced through human intervention. And every solved problem immediately becomes low-hanging fruit. This is literally why libraries exist.
-
I got the sense long ago that "form generators" and report generators represented "code-less" programming; which are mostly counter-intuitive and represent a steep learning curve (see Q&A). I see the new wave of code-less programming as a lot of people putting data in, but not being able to get information out.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
looks like in some time a large number of organizations will adopt this way. i don't mean completely abolishing programmers, but rather using automation aided coders. you apply for work in some corporation and they tell you, it is required to use this automated framework that writes the code and you just fill in the blanks if any or make some corrections.
-
Quote:
I got the sense long ago that "form generators" and report generators represented "code-less" programming; which are mostly counter-intuitive and represent a steep learning curve (see Q&A).
I dunno, the approach that Delphi and C++ builder took was a very maintainable approach; I've never got the feeling that it way a one-way generation with no way for the programmer to change it. Might be something there. At any rate, it's funny that you should post this now; I am reading it as I am in the middle of a personal project which does code generation :-). I'll find this thread and post a link when I am done in about 3 weeks.
I've worked with Delphi, Paradox, etc. but it's not a "code-less" tool for a "user". Like cryptocurrency, "code-less" is intended to appeal to those that don't know any better. I think in the context it's being pushed, it implies "no code" and not "less code". (The fine print)
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
-
looks like in some time a large number of organizations will adopt this way. i don't mean completely abolishing programmers, but rather using automation aided coders. you apply for work in some corporation and they tell you, it is required to use this automated framework that writes the code and you just fill in the blanks if any or make some corrections.
The "coders" can still assemble all the (code-less) widgets in the wrong order. Sort of like they do with language object classes ... but now marketed as user-friendly programming.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
-
PIEBALDconsult wrote:
We don't need help with that, we can do that easily enough ourselves
So you don’t create subroutines either, right? After all, if you know how to write the code you can do it again easily enough. Bonus: no function call overhead. The value in automating what you call low-hanging fruit is that it saves you time and reduces opportunities for error introduced through human intervention. And every solved problem immediately becomes low-hanging fruit. This is literally why libraries exist.
Myron Dombrowski wrote:
And every solved problem immediately becomes low-hanging fruit.
I hear that phrase all the time. Sounds like a wonderland. Where do I sign up? At least for me, I almost never work on any problem that is "low hanging". It often can require a week or more just to figure out where the problem originates and then I need to insure that the fix will not break anything. I have worked on projects where a lot of the the code that needed to be created was easy. And every single time it was brand new code. Often a brand new product. There was zero legacy. Last two cases didn't even have any requirements or even research on what loads the application would need to handle (until I did that research). Not to mention in one case dealing with a 'consultant' that had a really neat demo on how to handle millions of customers despite the fact that if the product was a complete monopoly in the world and was using a single data center it could have never had more than 100k active users.
-
Myron Dombrowski wrote:
And every solved problem immediately becomes low-hanging fruit.
I hear that phrase all the time. Sounds like a wonderland. Where do I sign up? At least for me, I almost never work on any problem that is "low hanging". It often can require a week or more just to figure out where the problem originates and then I need to insure that the fix will not break anything. I have worked on projects where a lot of the the code that needed to be created was easy. And every single time it was brand new code. Often a brand new product. There was zero legacy. Last two cases didn't even have any requirements or even research on what loads the application would need to handle (until I did that research). Not to mention in one case dealing with a 'consultant' that had a really neat demo on how to handle millions of customers despite the fact that if the product was a complete monopoly in the world and was using a single data center it could have never had more than 100k active users.
I get the sense that a lot of places - especially smaller ones - haven’t really understood and embraced the benefits of internal code reuse. Ideally you shouldn’t be writing code you’ve already written. Maybe your site isn’t achieving that ideal but it’s a goal you/they should strive for. Happily, where I am, I’m in a position to foster that culture and both the other coders and management are receptive to the idea.
-
I get the sense that a lot of places - especially smaller ones - haven’t really understood and embraced the benefits of internal code reuse. Ideally you shouldn’t be writing code you’ve already written. Maybe your site isn’t achieving that ideal but it’s a goal you/they should strive for. Happily, where I am, I’m in a position to foster that culture and both the other coders and management are receptive to the idea.
Myron Dombrowski wrote:
especially smaller ones - haven’t really understood and embraced the benefits of internal code reuse
There is at least one formal study that demonstrated that no one, doesn't matter the size, does that effectively unless they specifically reward the developers for that. For example actually measuring the code reused in new apps that come from existing libraries and using that as a specific factor on performance reviews.