• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Liutauras Vilda
  • Ron McLeod
Sheriffs:
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Saloon Keepers:
  • Scott Selikoff
  • Tim Holloway
  • Piet Souris
  • Mikalai Zaikin
  • Frits Walraven
Bartenders:
  • Stephan van Hulst
  • Carey Brown

If companies will be able to get all work done by AI then how will developer survive

 
Ranch Hand
Posts: 2954
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
AI  already has capability to generate code. If companies will be able to get all work done by AI then how will software engineers survive?
 
Bartender
Posts: 15737
368
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
AI might be able to write code, but AI sucks at understanding user requirements, creating semi-complex designs, and recognizing bugs.

Your job might be in trouble if you rely on a supervisor telling you what lines of code to write. Otherwise, I wouldn't be worried.
 
Marshal
Posts: 80133
418
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Monica Shiralkar wrote:. . . how will software engineers survive?

By sorting out the mess left by AI. By forensic programming to find the bugs from AI.
 
Marshal
Posts: 5757
353
IntelliJ IDE Python TypeScript Java Linux
  • Likes 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm currently reading Facts and Fallacies of Software Engineering by Robert L. Glass and by timely coincidence with you asking this question I have just read the following

Fact 22 wrote:Eighty percent of software work is intellectual. A fair amount of it is creative. Little of it is clerical


The discussion makes reference to the Fred Brooks quote from The Mythical Man-Month:

Fred Brooks wrote:software work is the most complex that humanity has ever undertaken


and concludes with

Robert L. Glass wrote:And, to me at least, that clearly says that software work is quite complex, not at all trivial or automatable



So with that in mind, for a highly complex discipline such as writing software and for a highly diverse set of solutions required for a highly diverse set of problem domains, do you think it is likely that the same set of humans have managed to write a generalised system that will write high quality software to solve all problems in all domains? Bear in mind that it's the same set of humans who have found it difficult to solve single problems in single domains all throughout the history of software.

There is no silver bullet.
goodtechthings-Pile_Of_Complexity-1024x1024-1856543610.png
[Thumbnail for goodtechthings-Pile_Of_Complexity-1024x1024-1856543610.png]
 
Campbell Ritchie
Marshal
Posts: 80133
418
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

the Drawing Tim Cooke showed wrote:What is Actually Going to Happen.

Why does the drawing miss out the bit about profits for the legal profession?
 
Tim Cooke
Marshal
Posts: 5757
353
IntelliJ IDE Python TypeScript Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
What new problems do you think the legal folks will need to step in to sort out?
 
Sheriff
Posts: 22818
132
Eclipse IDE Spring Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Copyright infringement issues come to mind.

To expand a bit: AI can create code based on existing code. A lot of that code is licensed. Do you think that AI listens to those licenses? Some of its input may be GPL, but do you think any company is going to make their final product GPL? Or if AI uses my Apache 2.0 licensed code, do you think I'll ever get the required mention? The answer to both is "no".
 
Campbell Ritchie
Marshal
Posts: 80133
418
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tim Cooke wrote:What new problems do you think the legal folks will need to step in to sort out?

None. Just a lot more of them.
 
Saloon Keeper
Posts: 28424
210
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm just going to repeat what I always say. They've been trying to replace developers for decades. AI is just the latest Silver Bullet.

So far as I can see, AI has yet to become truly creative, and that's essential for good software. AI is derivative and it has demonstrated a frightful ability to learn the wrong things, as seen by AIs that had to be pulled because they'd become bigoted.

It's not simply complexity. I'd have no issues with AIs analysing economic data. Stuff with lots of variables that strain the human brain to accept and correlate. But economics is inherently fuzzy and has an element of self-modification, rather like AI itself. But that's not creativity.

We've seen projects that went badly because they were shipped off to workers in cultures where questioning is not something you do to the boss. AIs in their present state have not shown the ability to see potential consequences and ask about them.

This doesn't mean I do not expect carnage in the IT industry because just like with its predecessors, management will latch onto it like leeches on a horse. And, to quote Benjamin Franklin: "Experience keeps a dear School, but Fools will learn in no other".
 
Monica Shiralkar
Ranch Hand
Posts: 2954
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stephan van Hulst wrote:but AI sucks at understanding user requirements, creating semi-complex designs, and recognizing bugs.



Thanks. But what if in few years AI improves to become very good in these areas?

Campbell Ritchie wrote:By sorting out the mess left by AI. By forensic programming to find the bugs from AI



Thanks. That is the good way to think. But what if in few years AI improves to be able to clear its mess itself?

Tim Cooke wrote:same set of humans have managed to write a generalised system that will write high quality software to solve all problems in all domains.



No. But what if with improvements over time this system can do all that?

Tim Holloway wrote:They've been trying to replace developers for decades. AI is just the latest Silver Bullet.



But what if with AI is becoming more and more intelligent, they may succeed in doing so in the coming years?
 
Tim Cooke
Marshal
Posts: 5757
353
IntelliJ IDE Python TypeScript Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You talk of AI as if it is a thing separate from ourselves, a thing with the ability to improve itself independently and unencumbered by the limitations of humans. It is not.

As Tim H says "AI is derivative", which is to say that its function is derived from the data it depends on. Thus by definition it is incapable of original thought, it cannot produce solutions to unsolved problems. In fact, and again referenced by Tim H, AI systems can be quite fragile when it is possible to modify the source data and inject falseness and bias.

It's interesting to me, and in my opinion a reflection on our general misunderstanding of what AI is, that we don't have similar expectations about other aspects of technology. For example, jUnit has been around since 1997 and yet I still have to write my own tests. Surely by now I should simply be able to ask jUnit to test my code without telling it anything about it? That sounds like a reasonable thing to expect for a tool that's been in development for 27 years, no? The notion of computer generated code has been around since the 1960s (and possibly earlier) with research that later became CASE tooling, and yet we software engineers have not been replaced by it.

In the context of the Gartner hype cycle I would expect to see AI marching with unwarranted confidence towards the "Peak of inflated expectations", soon to be followed by the "Trough of disillusionment".
 
MyExamCloud Software Support
Posts: 755
3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Despite advancements in AI and its potential to automate many tasks, developers will still have a prominent role in the software industry. While AI may be able to generate code, it lacks the critical thinking skills and creativity that developers possess. AI may be able to write code based on given prompts, but it cannot fully understand user requirements or apply design principles to create functional software. Additionally, developers have a deeper understanding of programming languages and can adapt to new technologies quickly, which are essential skills that cannot be replicated by AI. Therefore, there is no need for developers to worry about their future as the demand for their expertise will continue to exist in the industry.
 
Tim Cooke
Marshal
Posts: 5757
353
IntelliJ IDE Python TypeScript Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Which brings to mind another item in the "Facts and Fallacies" book I'm reading

Fact 16 wrote:Reuse-in-the-large (components) remains a mostly unsolved problem, even though everyone agrees it is important and desirable


Reuse-in-the-small is pretty well understood and github is full of examples. Little routines and libraries available to be included in your project so you don't have to reinvent the wheel, so to speak. AI can tap into this data source to make code completion suggestions, for example when you start typing public String md5OfString( your "AI enabled" IDE might make a suggestion to complete the entire method for you. This is "reuse-in-the-small", well it's actually worse than that it's "copy-and-paste-in-the-small".

I think your futuristic view of AI is "reuse-in-the-large" at its most extreme and thus at its most difficult. That is for me to start typing "Stock Trading Platform" and for AI to somehow arrive at a complete solution deployed into production ready to go.
 
Tim Holloway
Saloon Keeper
Posts: 28424
210
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tim Cooke wrote:
I think your futuristic view of AI is "reuse-in-the-large" at its most extreme and thus at its most difficult. That is for me to start typing "Stock Trading Platform" and for AI to somehow arrive at a complete solution deployed into production ready to go.



In a nutshell. Since in reality there are likely dozens, if not hundreds of different stock trading platforms and they have different strategies. Which one will the AI generate? This reminds me of a fairly common job description: "create a clone of Amazon.com. Absolutely has to be complete in 2 days. Maximum pay offered $50USD."

It would probably not be that hard to de-sensitize an AI to stuff baring a copyright notice. And, incidentally the reason people keep mentioning lawyers is that current AIs are indiscriminately trained on copyrighted material. However, where do you draw the line? Oracle tried suing for control of stuff like stdio.h, which is just a specification file independent of the implementation. Fortunately, they failed.
 
Monica Shiralkar
Ranch Hand
Posts: 2954
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tim Cooke wrote:You talk of AI as if it is a thing separate from ourselves, a thing with the ability to improve itself independently and unencumbered by the limitations of humans. It is not.

As Tim H says "AI is derivative", which is to say that its function is derived from the data it depends on. Thus by definition it is incapable of original thought, it cannot produce solutions to unsolved problems. In fact, and again referenced by Tim H, AI systems can be quite fragile when it is possible to modify the source data and inject falseness and bias.



Thanks. That explains well.

Tim Cooke wrote: jUnit has been around since 1997 and yet I still have to write my own tests. Surely by now I should simply be able to ask jUnit to test my code without telling it anything about it? That sounds like a reasonable thing to expect for a tool that's been in development for 27 years, no?



That is a good example. And what were the kind of problems due to which they could not come up with automating that?


Jhonson Fernando wrote: developers have a deeper understanding of programming languages and can adapt to new technologies quickly, which are essential skills that cannot be replicated by AI


What is the reason that these two cannot be replaced by AI?
 
Tim Holloway
Saloon Keeper
Posts: 28424
210
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Why can't AI write unit tests?

Because it requires imagination and AI has none. In fact, there's an old joke about how if you define something foolproof Nature will simply supply a bigger fool.

As far as it goes, I have a very firm policy that when I design a class or method that I should document allowable inputs and outputs (in Calculus terms, "domain" and "range") and indicate what I'll do if the constraints are violated. With relatively little effort, I could probably define some annotations that a "wizard" could use to generate code for and/or unit tests. Unlike AIs, "wizards" are simply coded to purpose, though. Eclipse has wizards that will generate constructors, getters/settrs. equals() and toString(), etc.

Spring has gone one further. The repository feature of Spring JPA can take a properly-named accessor method and internally generate the code without me needing to create a method body at all. Like "getIngredientsForRecipe()".

Where AI MIGHT help is if I coded a prototype for "getOddNumberedTestResults" and Spring's Repository didn't understand what "OddNumbered" meant. An AI could detect that if properly trained and ask what "OddNumbered" is, get a reply from the person doing the developing and integrate it onto the sites repository generator. That doesn't mean that it can't mis-generate code if the meaning of "odd numbered" is different somewhere else (let's say, for methods handling imaginary numbers) and it would be harder for people to detect the screwup, but the potential is there.


As to learning a new language, that's just another word for "training". But knowing the syntax of a language and knowing the philosophy are two different things. It's easy to feed in syntax rules. Making a shift from procedural programming design to OOP or predicate-based logic is quite different.
 
Monica Shiralkar
Ranch Hand
Posts: 2954
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tim Holloway wrote:
Where AI MIGHT help is if I coded a prototype for "getOddNumberedTestResults" and Spring's Repository didn't understand what "OddNumbered" meant. An AI could detect that if properly trained and ask what "OddNumbered" is, get a reply from the person doing the developing and integrate it onto the sites repository generator. That doesn't mean that it can't mis-generate code if the meaning of "odd numbered" is different somewhere else (let's say, for methods handling imaginary numbers) and it would be harder for people to detect the screwup, but the potential is there.


As to learning a new language, that's just another word for "training". But knowing the syntax of a language and knowing the philosophy are two different things. It's easy to feed in syntax rules. Making a shift from procedural programming design to OOP or predicate-based logic is quite different.



Yes. I am thining what if in future the method names like getOddNumberedTestResults also get generated by AI only as per some standard rules?
 
Tim Cooke
Marshal
Posts: 5757
353
IntelliJ IDE Python TypeScript Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You certainly are holding firm with your apparent belief that without the need for software engineer humans AI will be able to handle the complexity of writing software, diversity in possible solutions, and diversity in problem domains, and be able to produce exactly the thing that you want. A set of challenges that we technologists have struggled greatly with for many decades.

I said it before, and I'll say it again: There is no silver bullet.

I admire your optimism, but I don't share in it.
 
Tim Holloway
Saloon Keeper
Posts: 28424
210
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I said that AI isn't creative, but the other critical thing it lacks is curiosity. AI has to be trained. It doesn't go looking for answers.

Also, rules-based systems and AI are not the same thing. A rule-based system functions only insofar as the inputs conform to the defined rules. And someone has to define the rules explicitly.

An AI can determine "close enough" and attempt to apply a learned rule, and even twist a learned rule, but, again, lacks the curiosity to find out how accurate its output was. You need external confirmation/rejection/correction. Otherwise it's just GIGO2 (Garbage In/Gospel Out) and woe be the consequences.

This is why I favor AI for economic models, social models, CEO decision-making and the like where fuzzy results are the norm and mistakes are relatively easy to spot and correct. As opposed to code that might not have noticed that the dampers were open on a nuclear reactor on odd-numbered Saturdays. On Leap Years.
 
Monica Shiralkar
Ranch Hand
Posts: 2954
13
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I now feel that with AI, many developers will at many times just try to use AI get the work done and not understand the code to that level which they had to before AI. So, for many their programming knowledge will go down. Not saying this for all.
 
Sheriff
Posts: 28346
97
Eclipse IDE Firefox Browser MySQL Database
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
But it's normal for technological advances to make some workers obsolete, or at least less employable, isn't that so?
 
Tim Holloway
Saloon Keeper
Posts: 28424
210
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I went and read The Communist Manifesto a while back (spoiler: it starts out well, but goes downhill by the second page).

Almost the very first thing it references is the fact that automation and efficiency improvements are a threat to people's jobs and that it's inevitable and even desirable. But that just means that remedies should be found lest the people starve.

And this was written in the 1800's, mind you. Some say the singularity where we're too efficient for our own good is already upon us.

Part of the answer, according to Marx and Engels, was Communism. In a nutshell, that rather than have a small number of monied people become smaller and richer from the results of all this efficiency, instead the efficient resources be jointly owned by everyone.

It's hard to talk about Communism dispassionately. Americans, for example, have been conditioned from birth to a Pavlovian response based on the false concept that Communism means stealing all the hard-earned stuff from people like Jeff Bezos and distributing it all to lazy bums who will simply lie around in their underwear drinking beer all day. It's worth noting that back then industrialists were arguing against giving workers weekends off because they would "lay about drinking and indulging in immoral behaviour".

The Protestant Work Ethic underpins much of Western Society. One of its pillars is the response of the Apostle Paul to reports of deadbeats in early Christian communities (which, were, in fact, communal, after the example of Christ and his apostles). Paul said that those who wanted to eat must work.

That's in notable contrast to Paul's master: "Consider the lilies of the field. They toil not, neither do they spin. But Solomon in all his glory was not arrayed as finely as these."

But what of the deadbeats? It's also important to note that Marx was very big on Workers and on the innate need for people to be productive. Any system has its abusers, and in truth, yesterday's bum may be tomorrow's hero, or vice versa. Too often we obsess over small inefficiencies and don't realize that there's a point where the cost of preventing abuse exceeds the cost of the abuse itself. Marx didn't say "drunken bums of the World, Unite!"

To round out the consideration of Communism as "the solution", it's necessary to note that the biggest abusers in the large-scale Communist systems have always been the people at the top and they have been very abusive. End-stage Communism couldn't have leaders like that, since end-stage Communism is a pure democracy. But we've never found a way to get to that level. I doubt that pure democracy is really possible in any large nation with many and large issues. Democratic Republics are simply outsourcing those pesky issues to a democratically-elected representative who is supposed to deal with those problems so everyday people don't have to. And again, we have seen the difference between theory and reality there. A true solution has yet to be found, but it's one of those things AI might be able to address.

Finally, the Capitalist Side. To a lot of people, Capitalism was created on the First Day by God. In point of fact, what we call capitalism is only one of a number of ways to conduct commerce. Before the Elizabethan Age, most cases where a group of people with resources (investors) got together to fund an endeavor would be task-oriented. They'd pool resources to do things like assemble and launch a trading expedition and when (hopefully!) the expedition returned, they'd divide up the profits and the group would disband. Repeat as desired.

Corporations are not, however natural entities. A Corporation is a group of people granted a charter by the State to do business. Realize that in early days, the Monarchy rightfully didn't trust people to attain too much wealth independent of the State and regulated such things heavily. Our modern corporate charters are typically for an immortal (until someone screws it up) perpetual machine. That's an arbitrary thing, but it ensures the existance of stock markets and the like.

On the other hand, suppose, for example, that a corporate charter was granted that allowed operation for, say 20 years after which the corporate shares were distributed to the founders and the employees alike as recognition that no, Jeff Bezos could not make Amazon the cash cow it is by doing all the work himself. Stuff like that is worth pondering as the traditional systems deteriorate.

---
On a side note, of all the "Communist" countries of the world, the only one I think could be called successful would be China and China is often referred to as Communist in name only. I submit that in truth, Imperial China is still with us. It no longer calls its supreme ruler "emperor", and it has gone through two notable phases since there was such a person: the Mao phase and the Capitalism-on-a-leash phase, but China as a nation with a broad bureaucracy and a Supreme Leader still sounds like the classic empire.

Also from what I know of Russian history, pre-revolution farms were often run communally, with the landlord often off partying in the Big City instead of running or appointing a day-to-day administrator. However, no apparent effort was made for those communities to organize into larger communities and the best that can be said is that maybe it shaped the common people's receptiveness to the ideas of Marx.
 
Campbell Ritchie
Marshal
Posts: 80133
418
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tim Holloway wrote:. . . Paul said that those who wanted to eat must work. . . .

Not quite; he said that those who wouldn't (not couldn't) work shouldn't eat.

That's in notable contrast to Paul's master: "Consider the lilies of the field. They toil not, neither do they spin. But Solomon in all his glory was not arrayed as finely as these." . . .

I am sure that wasn't intended to let people off working.
 
Tim Holloway
Saloon Keeper
Posts: 28424
210
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:I am sure that wasn't intended to let people off working.



I'm not. There is precedent (manna). and I did leave off the part about comparing how God considers men relative to plants.

And Jesus exhortation to his disciples about whether they lacked for anything.

In fairness, the disciples weren't living the extravagant lifestyle to begin with and there are strong intimations that the End Times were at hand and that the faithful could expect their imminent reward. Nor has anyone said anything about people being required to work in Paradise.

As it happens, the End Times are still pending (despite some people's attempts to force God to hasten them), so might as well keep working, if you can. And to support those who cannot. Even if sometimes "will not" and "can not" are not obviously distinct.
 
Monica Shiralkar
Ranch Hand
Posts: 2954
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Paul Clapham wrote:But it's normal for technological advances to make some workers obsolete, or at least less employable, isn't that so?


Yes. Thanks. So, one had to keep learning and not become obsolete.
 
Monica Shiralkar
Ranch Hand
Posts: 2954
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I see one more reason for which developers will still be required.
Before AI, to do any work, the developers had to have a good understanding of the code they are writing. Now with AI some bad developers will just copy from chatgpt, get the work done, without understanding how it is working.  When production issues come, they (if still in the team) won't be able to understand the cause easily (since they had just pasted something from AI and that had worked), and then good developers around will be asked to jump in, understand the code and resolve the issue.
 
Paul Clapham
Sheriff
Posts: 28346
97
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Yes, nobody yet seems to be suggesting using AI for maintenance programming. But then most people are completely unaware that maintenance programming even exists.
 
Tim Holloway
Saloon Keeper
Posts: 28424
210
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Paul Clapham wrote:Yes, nobody yet seems to be suggesting using AI for maintenance programming. But then most people are completely unaware that maintenance programming even exists.


The only thing that frightens me more than having AI mindlessly generate code is having it mindlessly maintaining it and all its wierd quirks.
 
See where your hand is? Not there. It's next to this tiny ad:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic