A former professor of computer science and Google engineering lead thinks generative AI will lead to the end of programming within 3 years.
This month Matt Welsh, a former professor of computer science at Harvard, spoke at a virtual meetup of the Chicago Association for Computing Machinery (ACM), explaining his thesis that ChatGPI and GitHub Copilot represent the beginning of the end of programming.
Welsh thinks programming is on the cusp of changing from a job that humans do, to one that robots will do, thanks to technologies like ChatGPT and Copilot. In his view, programmers will need to evolve into “teachers” of AI programs — or perhaps product managers or code reviewers, the two human roles he thinks are relatively safe from the robots. But don’t expect to continue your career as an actual programmer, he says, because machines are taking over that role.
Welsh has founded a startup to prove his theory. Fixie.ai, which he is the CEO of, is a self-described “automation platform for large language models.” It aims to help businesses program custom software using, you guessed it, ChatGPT and similar machine learning programs.
‘Computer Science is Doomed’
Welsh came off the top rope at the start of his presentation, claiming that “computer science is doomed.”
“Programs that people are developing today are just as complex, just as hard to maintain, just as difficult to understand and just as full of bugs as they have ever been,” he claimed.
It was GitHub Copilot that made Welsh fundamentally reassess the meaning of computer science. “Copilot radically changes the way that we write code,” he said, “and has, at least in my personal experience, been just a remarkable and profound way of accelerating my development.”
By now we’ve all seen articles where the entire copy has been written by ChatGPT. It’s essentially a trope of its own at this point, so we will start out by assuring you that this article is being written by a human. AI tools do seem poised to be extremely disruptive to certain industries, though, but this doesn’t necessarily have to be a bad thing as long as they continue to be viewed as tools, rather than direct replacements. ChatGPT can be used to assist in plenty of tasks, and can help augment processes like programming (rather than becoming the programmer itself), and this article shows a few examples of what it might be used for.
While it can write some programs on its own, in some cases quite capably, for specialized or complex tasks it might not be quite up to the challenge yet. It will often appear extremely confident in its solutions even if it’s providing poor or false information, though, but that doesn’t mean it can’t or shouldn’t be used at all.
9 Practical Uses of ChatGPT in Programming
By
Maxwell Timothy
Published Mar 20, 2023
ChatGPT has so many potential coding uses, there are probably many that haven’t even been imagined yet. Find out about some that have. https://www.makeuseof.com/chatgpt-programming-practical-uses/
Git is a popular piece of software among developers. But what is it? This time we are going back to basics and taking a look at what Git is and how it is used. The first part of the post will be for you if you do not know what Git is, and you can safely skip to the second part if you have already used Git.
C++ on the Move
While the C++ programming language seems to be as popular as ever, efforts to move it forward are ongoing both inside the ISO C++ steering committee as well as other projects. https://thenewstack.io/c-on-the-move/
C2x is an informal name for the next (after C17) major C language standard revision. … It is expected to be voted on in 2023 and would therefore become C23. https://en.wikipedia.org/wiki/C2x
C++ 23, a planned upgrade to the popular programming language, is now feature-complete, with capabilities such as standard library module support. On the horizon is a subsequent release, dubbed C++ 26.
The ISO C++ Committee in early February completed technical work on the C++ 23 specification and is producing a final document for a draft approval ballot, said Herb Sutter, chair of the committee, in a blog post on February 13. The standard library module is expected to improve compilation.
Other features slated for C++ 23 include simplifying implicit move, fixing temporaries in range-for loops, multidimensional and static operator[], and Unicode improvements. Also featured is static constexpr in constexpr functions. The full list of features can be found at cppreference.com.
US National Security Agency recommends using memory safe programming languages instead of C/C++ when possible, because hackers frequently exploit memory issues.
The creator of C++, Bjarne Stroustrup, is defending the venerable programming language after the US National Security Agency (NSA) recently recommended against using it. NSA advises organizations to use memory safe languages instead.
Responding to the agency’s November 2022 bulletin on software memory safety, Stroustrup, who designed C++ in 1979, stressed decades-long efforts to enable better, safer, and more efficient C++. “In particular, the work on the C++ Core Guidelines specifically aims at delivering statically guaranteed type-safe and resource-safe C++ for people who need that without disrupting code bases that can manage without such strong guarantees or introducing additional tool chains,” Stroustrup said in a published response.
The NSA bulletin recommends against the use of C/C++ because, despite programmers often performing rigorous testing to ensure code is safe, memory issues in software still comprise a large portion of exploited vulnerabilities. “NSA advises organizations to consider making a strategic shift from programming languages that provide little or no inherent memory protection, such as C/C++, to a memory-safe language when possible,” the agency said.
The agency cited memory-safe languages such as C#, Go, Java, Ruby, Rust, and Swift.” NSA said commonly used languages such as C and C++ provide freedom and flexibility in memory management while heavily relying on the programmer to perform checks on memory references.
But Stroustrup emphasized improvements to safety. “Now, if I considered any of those ‘safe’ languages superior to C++ for the range of uses I care about, I wouldn’t consider the fading out of C/C++ as a bad thing, but that’s not the case. Also, as described, ‘safe’ is limited to memory safety, leaving out on the order of a dozen other ways that a language could (and will) be used to violate some form of safety and security.”
He also lamented NSA’s memo pairing C++ with the older C language. C++, originally called C with Classes, is an extension of C. “As is far too common, it lumps C and C++ into the single category C/C++, ignoring 30-plus years of progress.”
In an email to InfoWorld late last week, Stroustrup added, “Yes, far too many people talk about the mythical C/C++ language and then often proceed to focus on the weaknesses of the C part. Many of those weaknesses can be avoided in C++; typically, by writing more-efficient code that more directly expresses the intent of the programmer.”
Stroustrup in the email also shared his definition of safety: He aims for type and resource safety, in which every object is used according to its type and no resource is leaked. For C++, this implies some runtime range checking, eliminating access through dangling pointers, and avoiding misuses of casts and unions. C++ offers high-level facilities, such as containers, span, range-for loops, and variants that can offer guarantees without damaging productivity or efficiency. Regarding the so-called safe languages the NSA cited, Stroustrup said all of the languages are vulnerable through code that is not statically verified. Further, every system must use hardware, and effective hardware access is rarely safe, he said.
Stroustrup outlined his strategy for safe use of C++:
Static analysis to verify that no unsafe code is executed.
Coding rules to simplify the code to make industrial-scale static analysis feasible.
Libraries to make such simplified code reasonably easy to write and ensure runtime checks where needed.
Stroustrup said there are millions of C++ programmers and billions of lines of C++ code. Primary current uses for the language include aerospace, medical instrumentation, AI/ML, graphics, bio-medicine, high-energy physics, and others.
NSA acknowledged that memory management is not entirely safe even in a “memory-safe” language and that mechanisms such as static and dynamic application security testing (SAST and DAST) can be used to improve memory safety in so-called non-memory-safe languages. But neither SAST nor DAST can make non-memory-safe code totally safe, NSA said.
When you read someone else’s Python code, you frequently see a mysterious line, which always appears at the top of the file, starting with the distinctive shebang (#!) sequence. It looks like a not-so-useful comment, but other than that, it doesn’t resemble anything else you’ve learned about Python, making you wonder what that is and why it’s there. As if that wasn’t enough to confuse you, the shebang line only appears in some Python modules.
What’s a Shebang, and When Should You Use It?
In short, a shebang is a special kind of comment that you may include in your source code to tell the operating system’s shell where to find the interpreter for the rest of the file:
#!/usr/bin/python3
print(“Hello, World!”)
If you’re using a shebang, it appear on the first line in your script, and it has to start with a hash sign (#) followed by an exclamation mark (!), colloquially known as the bang, hence the name shebang.
Vertailun perusteella kielen valinta riippuu siitä, mitkä ovat kriteerit. Jos vaaditaan nopeutta ja muistia on käytössä vähän, valinta on C, Pascal, Go, Rust, C++ tai Fortran. Jos halutaan pientä energiankulutusta ja nopeutta painottava valitsee C:n, Rustin, C++:n, tai javan. Jos pieni energiankulutus ja pieni muisti ovat tärkeitä, valinta kohdistuu C:een, Pascaliin, Rustiin, C++:aan tai Fortraniin. Jos kaikki kolme kriteeriä ovat tärkeitä, kärkeen nousevat C, Pascal, Go, Rust ja C++.”
The low code/no code movement provides simplified app generation – but it needs to be understood to be safe.
The low code/no code movement provides simplified app generation – but it needs to be understood to be safe.
We are struggling to satisfy the demand for new software – the laborious effort of writing code has become a bottleneck to innovation in general, and being first to market in particular.
In other areas of business, such problems are being solved through automation. Automation applied to code generation leads to the concept of ‘low code/no code’; that is, the automatic generation of software requiring little or even no direct human coding. The question is whether this concept will be a genuine boon to secure app development, or just a promise full of hidden landmines and booby traps – like open source software has proved to be.
Concept
“The concept of low-code/no-code isn’t new,” explains Steve Wilson, CPO at Contrast Security; “but the definition isn’t very specific either. For decades, most computer programs have been written with text-based programming languages – aka code. The resulting ‘source code’ is then ‘compiled’ into the code a computer can execute. This is true for most apps that run on back-end servers, desktops, and even mobile phones today.”
Low code/no code environments are introducing a higher level of abstraction, often using concepts like drag-and-drop icons and data flow diagrams. “In other words, visual programming rather than textual. Alternatively, low-code environments may mix visual programming with small bits of textual code, often referred to as ‘scripts’ or ‘functions’ to allow the developer or user to mix the benefits of visual and textual concepts.”
Ryan Cunningham, VP of Power Apps at Microsoft described the Microsoft product. “Low code/no code platforms like the Microsoft Power Platform,” he said, “use AI, automation, and ‘what you see is what you get’ tooling to make it easier to create applications, data visualizations, workflows, chatbots, and websites more efficiently than traditional ‘code-first’ software development.”
Use
The application of low code/no code is expanding, and there is no single sentence nor use case that can categorize its potential. Broadly speaking, it falls into apps or workflows, or apps with workflows.
Eoin Hinchy, CEO and co-founder at Tines, has a low code/no code platform designed for security personnel. “Security teams face a major problem: there’s too much work and not enough staff,” he says. “More specifically, overworked staff are doing repetitive and mundane tasks, which not only leads to burnout [more likely, ‘rust out’, see Burnout in Cybersecurity – Can It Be Prevented?] but to human error that could cost a company millions.”
This can be solved by allowing the teams to develop their own scripts to automate workflows. But “Security analysts don’t necessarily have coding skills,” continued Hinchy, “so, they’re forced to call in developers, which can take weeks or months to create integrations and deploy automations. Then, if an update or addition is needed, the analyst needs to get developers involved all over again.”
His argument is that no-code automation allows frontline security analysts to independently automate time-consuming, mission-critical workflows: “like phishing attack responses, suspicious logins, and even employee onboarding and offboarding. Using a drag-and-drop interface, users place actions into a workflow, connect them together, enter parameters, test it, and set it loose.”
Automating workflows is just one of the uses for low code/no code concepts. Richard Rabins, CEO and co-founder of Alpha Software, sees the core technology of his platform frequently being used to develop mobile and web apps that combine with data collection workflows.
Advantages and disadvantages
“The top two benefits of low code/no code are speed of delivery and opening it up for ‘business users’ to self-service and develop workflows that meet their needs without needing to engage with IT. However, this is also the biggest potential pitfall,” comments Mark Lambert, VP of products at ArmorCode.
Reed Loden, VP of security at Teleport agrees. “I’m personally a big fan of low code/no code,” he says. “These types of products have made code integrations really easy, making certain actions possible that would have taken a typical developer a lot of time to complete.”
Reed Loden
But there are both pros and cons, he continued. “The pros are that developers can quickly make integrations that are super useful for cybersecurity. For example, it can create an interaction that detects an alert and automatically remediates a problem, without any human intervention required. The con is that these types of tools require a lot of access, so if they are compromised, it can be really bad for the customer.”
Cunningham, describes the movement as a democratic force: “This technology changes the traditional development landscape by making existing professionals more productive and at the same time democratizing software development for a wider range of users.”
Allowing professionals in a professional environment to be more productive is good. “It decreases the risks associated with either one-off software projects or the ‘shadow IT’ alternatives that many business users will turn to without any other viable solution,” he adds.
But the same democratizing process could increase shadow IT. In one area it could help a small business develop personal apps to improve internal operations and workflow. This could be good or bad depending on the security of the app’s usage.
But it could also persuade an employee in a large organization to by-pass the IT department and produce his or her own personal automation tools. “Giving the power of development to non-developers,” comments Nick Rago, Field CTO at Salt Security, “also presents another security risk in regard to shadow IT, even if the endpoints are intended to be ‘internal only’. We have seen far too many breaches where attackers gain inside or privileged access to internal applications and APIs.”
Lambert adds, “Simply put, we need a defined process for deploying low-code, no-code into production environments; and have guardrails to ensure that, if any issues are present, the potential damage is limited.”
In fairness to Cunningham, extensive guardrails are present in the Microsoft product. “The Power Platform is built upon all the security and governance capabilities Microsoft is known for,” he comments, “and makes it possible for IT departments to require standard guardrails around app development and data access. Administrators can build guardrails around data, applications, and environments.”
The problem is that once a new technology is in process, it cannot be contained.
Just as the web created the citizen journalist, so is low code/no code creating the citizen developer — with similar concerns. The output and the connection between subject and output both increase, but the accuracy and quality of the output needs scrutiny. It may be that the democratization of app development — at least for corporations — should be considered more as a potentially worrying side-effect than an advantage of low code/no code.
“One of the advantages of low code is that it allows non-developers to build their own applications,” says Jeff Williams, CTO and co-founder at Contrast Security. But he adds, “There is also a con in this as citizen developers are more likely to make inadvertent mistakes that could lead to security issues. I would expect citizen developers will make a lot of the basic mistakes such as hardcoded and exposed credentials, missing authentication and authorization checks, disclosure of PII, and exposure of implementation details.”
“If the platform is well designed and is generating code that’s secure, that’s a Good Thing,” says Mike Parkin, senior technical engineer at Vulcan Cyber, “but it may also potentially introduce idiosyncrasies or vulnerabilities that a threat actor could leverage. Overall, though, the low/no code platforms offer more advantages than not.”
Security implications
“Low code solutions are often considered more of a black box where developers may not have full control over how the underlying system is used, making it difficult to ensure the security of the application,” warns Jason Davis, VP of product and applications at Sauce Labs. “This can have implications as engineers don’t have control over network security, server configurations, security policies, and use of third-party services.”
Cunningham is a firm believer in the potential security of low code/no code. “A well-managed low code practice significantly decreases security concerns by standardizing application delivery on a robust platform with secure best practices built in… Companies can set granular data loss prevention policies to apply across low code environments.”
But Davis adds, “Vulnerabilities such as those achieved through inadequate input validation, insecure user input handling, or backdoors allowing unauthenticated access are always a concern.”
Rabins believes the security concerns are more in the use of the finished app, than the building blocks of its generator. Firstly, the generator is developed by experts with a security first approach. Secondly, it is under constant overview of security experts. And thirdly, since it is a cloud-based platform, any concerns can be immediately addressed and corrected for all future customers.
But he adds, “Any software that gets written has massive security implications. An app could be sending nurses to take care of patients in their own homes, and it collects sensitive medical information.” Here, it is not so much the security of the app’s code, but the security of the app’s usage that needs to be considered.
This is the primary security issue: the democratization of app production puts the ability into the hands of individuals who may have little understanding of cybersecurity and compliance regulations.
To complicate matters, those individuals or sole traders could be a component of your supply chain. Williams, however, doesn’t feel we should over-stress security concerns. “The risks are essentially the same [for all software]. Authentication, authorization, injection, encryption, logging, libraries, etc. There are slight differences with every application framework. And low/no code is no different.”
Wilson points out, “As with many things in IT, security is a shared responsibility model. What is the user/developer responsible for and what is the development environment responsible for. In a low-code environment, classic ‘vulnerabilities’ such as SQL Injection may not be a worry, and many user-authentication issues may be automatically handled. However, the user/developer may still make logic errors where they pass inappropriate data back to users or store data in insecure manners. In essence, the problems are all still there, but they move around in terms of who is responsible for what. At a minimum, you should thoroughly investigate the security characteristics, tools and practices that are recommended by the provider of your low-code tooling.”
He believes this is just the beginning. “I expect to see the proliferation of low code/no code solutions grow in the next to 12-18 months. With the skills in short supply, and the absolute complexity and large failure rates in large scale automation programs, companies are going to need a flexible, less risky way to build efficiencies.”
Like all new technologies, there are concerns in the early days. Cloud-based platforms reduce some of the concerns of low code/no code. Greater understanding of the governance and guardrails necessary to manage the results will come. The advantages without the disadvantages will increase over time.
Mariella Moon / Engadget:
Google gives Bard the ability to generate, debug, and explain code in 20+ languages, including C++, JavaScript, and Python, and export code to Google’s Colab
Google’s Bard chatbot now has the capability to help you with programming tasks. The tech giant said that coding has been one of its users’ top requests, and now it has given Bard the ability to generate, debug and explain code. Bard can now write in 20 programming languages, including C++, Java, JavaScript and Python. It now also features integration with Google’s other products and can export code to Colab, the company’s cloud-based notebook environment for Python, as well as help users write functions for Sheets.
Aside from being able to generate code, Bard can now provide explanations for snippets of code. It could be especially useful if you’ve only just started learning programming, since it will show you why a particular block has the output that it has. And yes, Bard can now also help you debug code that isn’t quite working like you want it to.
Insol on toteuttanut Färsaarille portaalin, johon asukaat kirjautuvat eID-tunnuksilla. Mukana on jo 15 eri palveluntarjoajaa ja heidän kauttaan 80 eri palvelua. Työn alla on digitaalinen ajokortti, passi ja henkilökortti. Yritysrekisteri aloittaa toimintansa kesän aikana. Helmikuussa järjestelmä laajeni koskemaan kaikkia saarten asukkaita.
Kannattaa verrata saavutusta Suomeen, jossa viime vaalikauden ajan yritettiin kehittää digitaalista henkilö- ja ajokorttia. Riitaisa hallitus lopulta hautasi molemmat hankkeet ja koko homma jäi alkavalle hallituskaudelle. Mutta miksi Färsaaret onnistui siinä, missä Suomessa epäonnistuttiin? Selittävä tekijä on vähäkoodisuus eli low-code.
- Vähäkoodisuus mahdollistaa kehityksen pienillä resursseilla. Esimerkiksi mobiilisovellus saadaan tehtyä kolmessa kuukaudessa kahden devaajan voimin, Pertsev kuvaa. Tämä tarkoittaa rajapintaa backend-järjestelmään, yhteyden suojaamista, kaikkea.
Denis Pertsev katsoo, että Outsystems on vasta alkua. Devaamisen vallankumouksen ensimmäinen vaihe. – Älykkäitä verkkoja sillä ei voi vielä rakentaa.
Alustan etuna on se, että kerran kehitettyä voi käyttää nopeasti uudelleen. Pohjat ovat jo valmiina. – Vähäkoodisessa kehittämisessä ei ohjelmoida, vaan rakennetaan bisnes-prosesseja, Pertsev tiivistää.
[BioBootloader] combined Python and a hefty dose of of AI for a fascinating proof of concept: self-healing Python scripts. He shows things working in a video, embedded below the break, but we’ll also describe what happens right here.
The demo Python script is a simple calculator that works from the command line, and [BioBootloader] introduces a few bugs to it. He misspells a variable used as a return value, and deletes the subtract_numbers(a, b) function entirely. Running this script by itself simply crashes, but using Wolverine on it has a very different outcome.
Give your python scripts regenerative healing abilities!
Run your scripts with Wolverine and when they crash, GPT-4 edits them and explains what went wrong. Even if you have many bugs it will repeatedly rerun until it’s fixed.
You might think assembly language on a PC is passe. After all, we have a host of efficient high-level languages and plenty of resources. But there are times you want to use assembly for some reason. Even if you don’t, the art of writing assembly language is very satisfying for some people — like an intricate logic puzzle. Getting your assembly language fix on a microcontroller is usually pretty simple, but on a PC there are a lot of hoops to jump. So why not use your browser? That’s the point of this snazzy 8086 assembler and emulator that runs in your browser. Actually, it is not native to the browser, but thanks to WebAssembly, it works fine there, too.
Programmers would love to deliver bug-free code. I know I would. The challenge is in the details. If it was easy, then we would not have a need for the Common Vulnerabilities and Exposures (CVE) program to track bugs on a global basis.
There are many ways to address the creation of applications that will not fail or work improperly. However, challenges crop up when using programming languages like C. Bill Wong, Editor at Electronic Design, takes a look at the options and issues from static-analysis tools to new programming languages like Rust. He also touches on the rise of machine learning and artificial intelligence and how they are coming into play for programmers and embedded developers.
Dave takes you on a tour of the C code used to write graphics primitives for the ancient Commodore KIM-1 computer. See how setpixel, linedraw, and more are implemented from first principles.
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.
We are a professional review site that has advertisement and can receive compensation from the companies whose products we review. We use affiliate links in the post so if you use them to buy products through those links we can get compensation at no additional cost to you.OkDecline
960 Comments
Tomi Engdahl says:
Ohjelmistotalo ei käytä AWS:ää – väittää säästävänsä yli 380 miljoonaa euroa
Janne Heleskoski15.3.202314:58|päivitetty15.3.202315:29PILVIALUSTATPILVIPALVELUTKONESALIT
Yhtiössä laskettiin, että pilvestä riippuvaisena sillä ei olisi varaa toimia ensinkään.
https://www.tivi.fi/uutiset/ohjelmistotalo-ei-kayta-awsaa-vaittaa-saastavansa-yli-380-miljoonaa-euroa/30fd569e-aa45-4c0a-a16d-1a845585254b
Tomi Engdahl says:
https://www.freecodecamp.org/news/python-range-function-example/
Tomi Engdahl says:
Coding Sucks Anyway — Matt Welsh on the End of Programming
https://thenewstack.io/coding-sucks-anyway-matt-welsh-on-the-end-of-programming/
A former professor of computer science and Google engineering lead thinks generative AI will lead to the end of programming within 3 years.
This month Matt Welsh, a former professor of computer science at Harvard, spoke at a virtual meetup of the Chicago Association for Computing Machinery (ACM), explaining his thesis that ChatGPI and GitHub Copilot represent the beginning of the end of programming.
Welsh thinks programming is on the cusp of changing from a job that humans do, to one that robots will do, thanks to technologies like ChatGPT and Copilot. In his view, programmers will need to evolve into “teachers” of AI programs — or perhaps product managers or code reviewers, the two human roles he thinks are relatively safe from the robots. But don’t expect to continue your career as an actual programmer, he says, because machines are taking over that role.
Welsh has founded a startup to prove his theory. Fixie.ai, which he is the CEO of, is a self-described “automation platform for large language models.” It aims to help businesses program custom software using, you guessed it, ChatGPT and similar machine learning programs.
‘Computer Science is Doomed’
Welsh came off the top rope at the start of his presentation, claiming that “computer science is doomed.”
“Programs that people are developing today are just as complex, just as hard to maintain, just as difficult to understand and just as full of bugs as they have ever been,” he claimed.
It was GitHub Copilot that made Welsh fundamentally reassess the meaning of computer science. “Copilot radically changes the way that we write code,” he said, “and has, at least in my personal experience, been just a remarkable and profound way of accelerating my development.”
Tomi Engdahl says:
Basically, he only sees a couple of roles for humans once programmers are phased out: product manager and code reviewer.
Tomi Engdahl says:
It’s time for open-source users to open their wallets
History has shown that open-source users prefer their software free of charge but that’s a problem for a lot of companies trying to keep the lights on.
https://www.zdnet.com/article/its-time-for-open-source-users-to-open-their-wallets/
Tomi Engdahl says:
https://ondrejcertik.com/blog/2023/03/fastgpt-faster-than-pytorch-in-300-lines-of-fortran/
Tomi Engdahl says:
How to Read ARM64 Assembly Language
https://wolchok.org/posts/how-to-read-arm64-assembly-language/
Tomi Engdahl says:
Meet ViperGPT: A Python Framework that Combines Vision and Language Models Using Code Generation to Achieve State-of-the-Art Results
https://www.marktechpost.com/2023/03/17/meet-vipergpt-a-python-framework-that-combines-vision-and-language-models-using-code-generation-to-achieve-state-of-the-art-results/
Tomi Engdahl says:
https://www.theregister.com/2023/03/17/ken_thompson_is_a_maccie/
Tomi Engdahl says:
https://www.analyticsinsight.net/top-10-open-source-programming-languages-in-2023/
Tomi Engdahl says:
https://www.analyticsinsight.net/top-10-most-in-demand-programming-languages-for-mobile-app-development/
Tomi Engdahl says:
How Much Programming Can ChatGPT Really Do?
https://hackaday.com/2023/03/25/how-much-programming-can-chatgpt-really-do/
By now we’ve all seen articles where the entire copy has been written by ChatGPT. It’s essentially a trope of its own at this point, so we will start out by assuring you that this article is being written by a human. AI tools do seem poised to be extremely disruptive to certain industries, though, but this doesn’t necessarily have to be a bad thing as long as they continue to be viewed as tools, rather than direct replacements. ChatGPT can be used to assist in plenty of tasks, and can help augment processes like programming (rather than becoming the programmer itself), and this article shows a few examples of what it might be used for.
While it can write some programs on its own, in some cases quite capably, for specialized or complex tasks it might not be quite up to the challenge yet. It will often appear extremely confident in its solutions even if it’s providing poor or false information, though, but that doesn’t mean it can’t or shouldn’t be used at all.
9 Practical Uses of ChatGPT in Programming
By
Maxwell Timothy
Published Mar 20, 2023
ChatGPT has so many potential coding uses, there are probably many that haven’t even been imagined yet. Find out about some that have.
https://www.makeuseof.com/chatgpt-programming-practical-uses/
Tomi Engdahl says:
https://hackaday.com/2023/03/28/debugging-and-analyzing-real-mode-16-bit-x86-code-with-fresh-bread/
Tomi Engdahl says:
https://github.com/Theldus/bread
Tomi Engdahl says:
https://towardsdatascience.com/creating-fractals-in-python-a502e5fc2094
Tomi Engdahl says:
Git is a popular piece of software among developers. But what is it? This time we are going back to basics and taking a look at what Git is and how it is used. The first part of the post will be for you if you do not know what Git is, and you can safely skip to the second part if you have already used Git.
https://nitor.com/en/articles/on-the-subject-of-git?fbclid=IwAR1gh7XTWCVtn7GMw2GIe_5QaAAQxdFhlOmfG5Z7kL8tiOWnvgMX4e0Ly-o_aem_AXjfOWh_TKaE5ua3NE_qbfuqlBT8M2cp8IELvlOcPeL5JmC4Anr6aXEUnXxA6p4kUpAs40EmvsdA9xIqE19YBTAszhaotthIeweJ31FdpsYRQZ8leXdmKrUF43FMYksvWJk
Tomi Engdahl says:
https://www.freecodecamp.org/news/creating-a-directory-in-python-how-to-create-a-folder/
Tomi Engdahl says:
C++ on the Move
While the C++ programming language seems to be as popular as ever, efforts to move it forward are ongoing both inside the ISO C++ steering committee as well as other projects.
https://thenewstack.io/c-on-the-move/
Tomi Engdahl says:
https://en.cppreference.com/w/cpp/23?utm_source=thenewstack&utm_medium=website&utm_content=inline-mention&utm_campaign=platform
Tomi Engdahl says:
https://en.cppreference.com/w/cpp/compiler_support/23
Tomi Engdahl says:
https://gcc.gnu.org/projects/cxx-status.html#cxx23
Tomi Engdahl says:
C2x is an informal name for the next (after C17) major C language standard revision. … It is expected to be voted on in 2023 and would therefore become C23.
https://en.wikipedia.org/wiki/C2x
Tomi Engdahl says:
C++ 23 language standard declared feature-complete
Forthcoming update of C++ will include a standard library module named std. Attention of the ISO C++ Committee now turns to C++ 26.
https://www.infoworld.com/article/3688923/c-23-language-standard-declared-feature-complete.html
C++ 23, a planned upgrade to the popular programming language, is now feature-complete, with capabilities such as standard library module support. On the horizon is a subsequent release, dubbed C++ 26.
The ISO C++ Committee in early February completed technical work on the C++ 23 specification and is producing a final document for a draft approval ballot, said Herb Sutter, chair of the committee, in a blog post on February 13. The standard library module is expected to improve compilation.
Other features slated for C++ 23 include simplifying implicit move, fixing temporaries in range-for loops, multidimensional and static operator[], and Unicode improvements. Also featured is static constexpr in constexpr functions. The full list of features can be found at cppreference.com.
C++23 “Pandemic Edition” is complete (Trip report: Winter ISO C++ standards meeting, Issaquah, WA, USA)
https://herbsutter.com/2023/02/13/c23-pandemic-edition-is-complete-trip-report-winter-iso-c-standards-meeting-issaquah-wa-usa/
Tomi Engdahl says:
Many features of C++ 23 already have been implemented in major compilers and libraries, Sutter said. A planned C++ 26 release of the language, meanwhile, is slated to emphasize concurrency and parallelism.
https://www.infoworld.com/article/3688923/c-23-language-standard-declared-feature-complete.html
Tomi Engdahl says:
C++ creator Bjarne Stroustrup defends its safety
https://www.infoworld.com/article/3686517/c-plus-plus-creator-bjarne-stroustrup-defends-its-safety.html
US National Security Agency recommends using memory safe programming languages instead of C/C++ when possible, because hackers frequently exploit memory issues.
The creator of C++, Bjarne Stroustrup, is defending the venerable programming language after the US National Security Agency (NSA) recently recommended against using it. NSA advises organizations to use memory safe languages instead.
Responding to the agency’s November 2022 bulletin on software memory safety, Stroustrup, who designed C++ in 1979, stressed decades-long efforts to enable better, safer, and more efficient C++. “In particular, the work on the C++ Core Guidelines specifically aims at delivering statically guaranteed type-safe and resource-safe C++ for people who need that without disrupting code bases that can manage without such strong guarantees or introducing additional tool chains,” Stroustrup said in a published response.
The NSA bulletin recommends against the use of C/C++ because, despite programmers often performing rigorous testing to ensure code is safe, memory issues in software still comprise a large portion of exploited vulnerabilities. “NSA advises organizations to consider making a strategic shift from programming languages that provide little or no inherent memory protection, such as C/C++, to a memory-safe language when possible,” the agency said.
The agency cited memory-safe languages such as C#, Go, Java, Ruby, Rust, and Swift.” NSA said commonly used languages such as C and C++ provide freedom and flexibility in memory management while heavily relying on the programmer to perform checks on memory references.
But Stroustrup emphasized improvements to safety. “Now, if I considered any of those ‘safe’ languages superior to C++ for the range of uses I care about, I wouldn’t consider the fading out of C/C++ as a bad thing, but that’s not the case. Also, as described, ‘safe’ is limited to memory safety, leaving out on the order of a dozen other ways that a language could (and will) be used to violate some form of safety and security.”
He also lamented NSA’s memo pairing C++ with the older C language. C++, originally called C with Classes, is an extension of C. “As is far too common, it lumps C and C++ into the single category C/C++, ignoring 30-plus years of progress.”
In an email to InfoWorld late last week, Stroustrup added, “Yes, far too many people talk about the mythical C/C++ language and then often proceed to focus on the weaknesses of the C part. Many of those weaknesses can be avoided in C++; typically, by writing more-efficient code that more directly expresses the intent of the programmer.”
Stroustrup in the email also shared his definition of safety: He aims for type and resource safety, in which every object is used according to its type and no resource is leaked. For C++, this implies some runtime range checking, eliminating access through dangling pointers, and avoiding misuses of casts and unions. C++ offers high-level facilities, such as containers, span, range-for loops, and variants that can offer guarantees without damaging productivity or efficiency. Regarding the so-called safe languages the NSA cited, Stroustrup said all of the languages are vulnerable through code that is not statically verified. Further, every system must use hardware, and effective hardware access is rarely safe, he said.
Stroustrup outlined his strategy for safe use of C++:
Static analysis to verify that no unsafe code is executed.
Coding rules to simplify the code to make industrial-scale static analysis feasible.
Libraries to make such simplified code reasonably easy to write and ensure runtime checks where needed.
Stroustrup said there are millions of C++ programmers and billions of lines of C++ code. Primary current uses for the language include aerospace, medical instrumentation, AI/ML, graphics, bio-medicine, high-energy physics, and others.
NSA acknowledged that memory management is not entirely safe even in a “memory-safe” language and that mechanisms such as static and dynamic application security testing (SAST and DAST) can be used to improve memory safety in so-called non-memory-safe languages. But neither SAST nor DAST can make non-memory-safe code totally safe, NSA said.
Tomi Engdahl says:
https://en.wikipedia.org/wiki/C%2B%2B23
Tomi Engdahl says:
https://www.analyticsinsight.net/top-10-programming-languages-to-learn-development-skills-in-2023/
Tomi Engdahl says:
Executing Python Scripts With a Shebang
https://realpython.com/python-shebang/
When you read someone else’s Python code, you frequently see a mysterious line, which always appears at the top of the file, starting with the distinctive shebang (#!) sequence. It looks like a not-so-useful comment, but other than that, it doesn’t resemble anything else you’ve learned about Python, making you wonder what that is and why it’s there. As if that wasn’t enough to confuse you, the shebang line only appears in some Python modules.
What’s a Shebang, and When Should You Use It?
In short, a shebang is a special kind of comment that you may include in your source code to tell the operating system’s shell where to find the interpreter for the rest of the file:
#!/usr/bin/python3
print(“Hello, World!”)
If you’re using a shebang, it appear on the first line in your script, and it has to start with a hash sign (#) followed by an exclamation mark (!), colloquially known as the bang, hence the name shebang.
Tomi Engdahl says:
Is there a software bomb ticking in production?
https://gofore.com/en/is-there-a-software-bomb-ticking-in-production/
Tomi Engdahl says:
Is WebAssembly Really the Future?
Wasm’s prospects are brighter than ever. But where will the roadmap lead us next?
https://thenewstack.io/is-webassembly-really-the-future/
Tomi Engdahl says:
https://hackaday.com/2023/03/30/generating-instead-of-storing-meshes/
Tomi Engdahl says:
https://etn.fi/index.php/13-news/14802-miksi-java-on-hidas
Tomi Engdahl says:
Vertailun perusteella kielen valinta riippuu siitä, mitkä ovat kriteerit. Jos vaaditaan nopeutta ja muistia on käytössä vähän, valinta on C, Pascal, Go, Rust, C++ tai Fortran. Jos halutaan pientä energiankulutusta ja nopeutta painottava valitsee C:n, Rustin, C++:n, tai javan. Jos pieni energiankulutus ja pieni muisti ovat tärkeitä, valinta kohdistuu C:een, Pascaliin, Rustiin, C++:aan tai Fortraniin. Jos kaikki kolme kriteeriä ovat tärkeitä, kärkeen nousevat C, Pascal, Go, Rust ja C++.”
https://etn.fi/index.php/13-news/14802-miksi-java-on-hidas
Tomi Engdahl says:
https://www.freecodecamp.org/news/indices-of-a-list-in-python-list-indexof-equivalent/
Tomi Engdahl says:
https://nitor.com/en/articles/on-the-subject-of-git?fbclid=IwAR2W947TIPLRI89LY83UyzqidGVo7Zw-AptjIDBzJxUOUw6tgGitRzmnM_c_aem_Ac8tu8HGKV6uaYkar-eUwZVXuCPYkLYurWhZWRCDyPXYqBbPaG5XYfUMfJKfqhtXHDFwVU_0oeAEuY2kyWZ74niWP-zsrS67nY8CvgsxfHWgLUoGWivfEM3YajSusuCk_F4
Tomi Engdahl says:
https://www.freecodecamp.org/news/how-to-search-large-datasets-in-python/
Tomi Engdahl says:
https://www.makeuseof.com/chatgpt-programming-practical-uses/
Tomi Engdahl says:
https://github.com/ngyikp/my-little-software
Tomi Engdahl says:
Vulnerabilities
The Security and Productivity Implications of Low Code/No Code Development
https://www.securityweek.com/the-security-and-productivity-implications-of-low-code-no-code-development/
The low code/no code movement provides simplified app generation – but it needs to be understood to be safe.
The low code/no code movement provides simplified app generation – but it needs to be understood to be safe.
We are struggling to satisfy the demand for new software – the laborious effort of writing code has become a bottleneck to innovation in general, and being first to market in particular.
In other areas of business, such problems are being solved through automation. Automation applied to code generation leads to the concept of ‘low code/no code’; that is, the automatic generation of software requiring little or even no direct human coding. The question is whether this concept will be a genuine boon to secure app development, or just a promise full of hidden landmines and booby traps – like open source software has proved to be.
Concept
“The concept of low-code/no-code isn’t new,” explains Steve Wilson, CPO at Contrast Security; “but the definition isn’t very specific either. For decades, most computer programs have been written with text-based programming languages – aka code. The resulting ‘source code’ is then ‘compiled’ into the code a computer can execute. This is true for most apps that run on back-end servers, desktops, and even mobile phones today.”
Low code/no code environments are introducing a higher level of abstraction, often using concepts like drag-and-drop icons and data flow diagrams. “In other words, visual programming rather than textual. Alternatively, low-code environments may mix visual programming with small bits of textual code, often referred to as ‘scripts’ or ‘functions’ to allow the developer or user to mix the benefits of visual and textual concepts.”
Ryan Cunningham, VP of Power Apps at Microsoft described the Microsoft product. “Low code/no code platforms like the Microsoft Power Platform,” he said, “use AI, automation, and ‘what you see is what you get’ tooling to make it easier to create applications, data visualizations, workflows, chatbots, and websites more efficiently than traditional ‘code-first’ software development.”
Use
The application of low code/no code is expanding, and there is no single sentence nor use case that can categorize its potential. Broadly speaking, it falls into apps or workflows, or apps with workflows.
Eoin Hinchy, CEO and co-founder at Tines, has a low code/no code platform designed for security personnel. “Security teams face a major problem: there’s too much work and not enough staff,” he says. “More specifically, overworked staff are doing repetitive and mundane tasks, which not only leads to burnout [more likely, ‘rust out’, see Burnout in Cybersecurity – Can It Be Prevented?] but to human error that could cost a company millions.”
This can be solved by allowing the teams to develop their own scripts to automate workflows. But “Security analysts don’t necessarily have coding skills,” continued Hinchy, “so, they’re forced to call in developers, which can take weeks or months to create integrations and deploy automations. Then, if an update or addition is needed, the analyst needs to get developers involved all over again.”
His argument is that no-code automation allows frontline security analysts to independently automate time-consuming, mission-critical workflows: “like phishing attack responses, suspicious logins, and even employee onboarding and offboarding. Using a drag-and-drop interface, users place actions into a workflow, connect them together, enter parameters, test it, and set it loose.”
Automating workflows is just one of the uses for low code/no code concepts. Richard Rabins, CEO and co-founder of Alpha Software, sees the core technology of his platform frequently being used to develop mobile and web apps that combine with data collection workflows.
Advantages and disadvantages
“The top two benefits of low code/no code are speed of delivery and opening it up for ‘business users’ to self-service and develop workflows that meet their needs without needing to engage with IT. However, this is also the biggest potential pitfall,” comments Mark Lambert, VP of products at ArmorCode.
Reed Loden, VP of security at Teleport agrees. “I’m personally a big fan of low code/no code,” he says. “These types of products have made code integrations really easy, making certain actions possible that would have taken a typical developer a lot of time to complete.”
Reed Loden
But there are both pros and cons, he continued. “The pros are that developers can quickly make integrations that are super useful for cybersecurity. For example, it can create an interaction that detects an alert and automatically remediates a problem, without any human intervention required. The con is that these types of tools require a lot of access, so if they are compromised, it can be really bad for the customer.”
Cunningham, describes the movement as a democratic force: “This technology changes the traditional development landscape by making existing professionals more productive and at the same time democratizing software development for a wider range of users.”
Allowing professionals in a professional environment to be more productive is good. “It decreases the risks associated with either one-off software projects or the ‘shadow IT’ alternatives that many business users will turn to without any other viable solution,” he adds.
But the same democratizing process could increase shadow IT. In one area it could help a small business develop personal apps to improve internal operations and workflow. This could be good or bad depending on the security of the app’s usage.
But it could also persuade an employee in a large organization to by-pass the IT department and produce his or her own personal automation tools. “Giving the power of development to non-developers,” comments Nick Rago, Field CTO at Salt Security, “also presents another security risk in regard to shadow IT, even if the endpoints are intended to be ‘internal only’. We have seen far too many breaches where attackers gain inside or privileged access to internal applications and APIs.”
Lambert adds, “Simply put, we need a defined process for deploying low-code, no-code into production environments; and have guardrails to ensure that, if any issues are present, the potential damage is limited.”
In fairness to Cunningham, extensive guardrails are present in the Microsoft product. “The Power Platform is built upon all the security and governance capabilities Microsoft is known for,” he comments, “and makes it possible for IT departments to require standard guardrails around app development and data access. Administrators can build guardrails around data, applications, and environments.”
The problem is that once a new technology is in process, it cannot be contained.
Just as the web created the citizen journalist, so is low code/no code creating the citizen developer — with similar concerns. The output and the connection between subject and output both increase, but the accuracy and quality of the output needs scrutiny. It may be that the democratization of app development — at least for corporations — should be considered more as a potentially worrying side-effect than an advantage of low code/no code.
“One of the advantages of low code is that it allows non-developers to build their own applications,” says Jeff Williams, CTO and co-founder at Contrast Security. But he adds, “There is also a con in this as citizen developers are more likely to make inadvertent mistakes that could lead to security issues. I would expect citizen developers will make a lot of the basic mistakes such as hardcoded and exposed credentials, missing authentication and authorization checks, disclosure of PII, and exposure of implementation details.”
“If the platform is well designed and is generating code that’s secure, that’s a Good Thing,” says Mike Parkin, senior technical engineer at Vulcan Cyber, “but it may also potentially introduce idiosyncrasies or vulnerabilities that a threat actor could leverage. Overall, though, the low/no code platforms offer more advantages than not.”
Security implications
“Low code solutions are often considered more of a black box where developers may not have full control over how the underlying system is used, making it difficult to ensure the security of the application,” warns Jason Davis, VP of product and applications at Sauce Labs. “This can have implications as engineers don’t have control over network security, server configurations, security policies, and use of third-party services.”
Cunningham is a firm believer in the potential security of low code/no code. “A well-managed low code practice significantly decreases security concerns by standardizing application delivery on a robust platform with secure best practices built in… Companies can set granular data loss prevention policies to apply across low code environments.”
But Davis adds, “Vulnerabilities such as those achieved through inadequate input validation, insecure user input handling, or backdoors allowing unauthenticated access are always a concern.”
Rabins believes the security concerns are more in the use of the finished app, than the building blocks of its generator. Firstly, the generator is developed by experts with a security first approach. Secondly, it is under constant overview of security experts. And thirdly, since it is a cloud-based platform, any concerns can be immediately addressed and corrected for all future customers.
But he adds, “Any software that gets written has massive security implications. An app could be sending nurses to take care of patients in their own homes, and it collects sensitive medical information.” Here, it is not so much the security of the app’s code, but the security of the app’s usage that needs to be considered.
This is the primary security issue: the democratization of app production puts the ability into the hands of individuals who may have little understanding of cybersecurity and compliance regulations.
To complicate matters, those individuals or sole traders could be a component of your supply chain. Williams, however, doesn’t feel we should over-stress security concerns. “The risks are essentially the same [for all software]. Authentication, authorization, injection, encryption, logging, libraries, etc. There are slight differences with every application framework. And low/no code is no different.”
Wilson points out, “As with many things in IT, security is a shared responsibility model. What is the user/developer responsible for and what is the development environment responsible for. In a low-code environment, classic ‘vulnerabilities’ such as SQL Injection may not be a worry, and many user-authentication issues may be automatically handled. However, the user/developer may still make logic errors where they pass inappropriate data back to users or store data in insecure manners. In essence, the problems are all still there, but they move around in terms of who is responsible for what. At a minimum, you should thoroughly investigate the security characteristics, tools and practices that are recommended by the provider of your low-code tooling.”
He believes this is just the beginning. “I expect to see the proliferation of low code/no code solutions grow in the next to 12-18 months. With the skills in short supply, and the absolute complexity and large failure rates in large scale automation programs, companies are going to need a flexible, less risky way to build efficiencies.”
Like all new technologies, there are concerns in the early days. Cloud-based platforms reduce some of the concerns of low code/no code. Greater understanding of the governance and guardrails necessary to manage the results will come. The advantages without the disadvantages will increase over time.
Tomi Engdahl says:
Mariella Moon / Engadget:
Google gives Bard the ability to generate, debug, and explain code in 20+ languages, including C++, JavaScript, and Python, and export code to Google’s Colab
Google gives Bard the ability to generate and debug code
Coding has apparently been a top request by users.
https://www.engadget.com/google-gives-bard-the-ability-to-generate-and-debug-code-130024663.html?guccounter=1&guce_referrer=aHR0cHM6Ly93d3cudGVjaG1lbWUuY29tLw&guce_referrer_sig=AQAAANLfV_w1UZlPuxAPajkQpBonUFbMbORNtBiLMRPjOjXT7eN92uWxdWLN342DM63K_Nydb2OC94L-F2CG9WTYQt1M-3VIPdjWDCRpmUBILhcvN_5MdCxLctgSMrq03nIUgWTIjomVg8KrEtkrslHWAQuHiTxih_31fK452Stl9j5K
Google’s Bard chatbot now has the capability to help you with programming tasks. The tech giant said that coding has been one of its users’ top requests, and now it has given Bard the ability to generate, debug and explain code. Bard can now write in 20 programming languages, including C++, Java, JavaScript and Python. It now also features integration with Google’s other products and can export code to Colab, the company’s cloud-based notebook environment for Python, as well as help users write functions for Sheets.
Aside from being able to generate code, Bard can now provide explanations for snippets of code. It could be especially useful if you’ve only just started learning programming, since it will show you why a particular block has the output that it has. And yes, Bard can now also help you debug code that isn’t quite working like you want it to.
https://blog.google/technology/ai/code-with-bard/
https://www.engadget.com/google-bard-ai-hands-on-a-work-in-progress-with-plenty-of-caveats-170956025.html
Tomi Engdahl says:
Insol digitalisoi Färsaaret vähäkoodisesti
https://etn.fi/index.php/13-news/14876-insol-digitalisoi-faersaaret-vaehaekoodisesti
Insol on toteuttanut Färsaarille portaalin, johon asukaat kirjautuvat eID-tunnuksilla. Mukana on jo 15 eri palveluntarjoajaa ja heidän kauttaan 80 eri palvelua. Työn alla on digitaalinen ajokortti, passi ja henkilökortti. Yritysrekisteri aloittaa toimintansa kesän aikana. Helmikuussa järjestelmä laajeni koskemaan kaikkia saarten asukkaita.
Kannattaa verrata saavutusta Suomeen, jossa viime vaalikauden ajan yritettiin kehittää digitaalista henkilö- ja ajokorttia. Riitaisa hallitus lopulta hautasi molemmat hankkeet ja koko homma jäi alkavalle hallituskaudelle. Mutta miksi Färsaaret onnistui siinä, missä Suomessa epäonnistuttiin? Selittävä tekijä on vähäkoodisuus eli low-code.
- Vähäkoodisuus mahdollistaa kehityksen pienillä resursseilla. Esimerkiksi mobiilisovellus saadaan tehtyä kolmessa kuukaudessa kahden devaajan voimin, Pertsev kuvaa. Tämä tarkoittaa rajapintaa backend-järjestelmään, yhteyden suojaamista, kaikkea.
Denis Pertsev katsoo, että Outsystems on vasta alkua. Devaamisen vallankumouksen ensimmäinen vaihe. – Älykkäitä verkkoja sillä ei voi vielä rakentaa.
Alustan etuna on se, että kerran kehitettyä voi käyttää nopeasti uudelleen. Pohjat ovat jo valmiina. – Vähäkoodisessa kehittämisessä ei ohjelmoida, vaan rakennetaan bisnes-prosesseja, Pertsev tiivistää.
Tomi Engdahl says:
Tired Of Web Scraping? Make The AI Do It
https://hackaday.com/2023/04/09/tired-of-web-scraping-make-the-ai-do-it/
https://jamesturk.github.io/scrapeghost/
Tomi Engdahl says:
Wolverine Gives Your Python Scripts The Ability To Self-Heal
https://hackaday.com/2023/04/09/wolverine-gives-your-python-scripts-the-ability-to-self-heal/
[BioBootloader] combined Python and a hefty dose of of AI for a fascinating proof of concept: self-healing Python scripts. He shows things working in a video, embedded below the break, but we’ll also describe what happens right here.
The demo Python script is a simple calculator that works from the command line, and [BioBootloader] introduces a few bugs to it. He misspells a variable used as a return value, and deletes the subtract_numbers(a, b) function entirely. Running this script by itself simply crashes, but using Wolverine on it has a very different outcome.
https://github.com/biobootloader/wolverine
Give your python scripts regenerative healing abilities!
Run your scripts with Wolverine and when they crash, GPT-4 edits them and explains what went wrong. Even if you have many bugs it will repeatedly rerun until it’s fixed.
Tomi Engdahl says:
https://hackaday.com/2023/04/10/the-hello-world-of-gpt/
Tomi Engdahl says:
It Isn’t WebAssembly, But It Is Assembly In Your Browser
https://hackaday.com/2023/04/11/it-isnt-webassembly-but-it-is-assembly-in-your-browser/
You might think assembly language on a PC is passe. After all, we have a host of efficient high-level languages and plenty of resources. But there are times you want to use assembly for some reason. Even if you don’t, the art of writing assembly language is very satisfying for some people — like an intricate logic puzzle. Getting your assembly language fix on a microcontroller is usually pretty simple, but on a PC there are a lot of hoops to jump. So why not use your browser? That’s the point of this snazzy 8086 assembler and emulator that runs in your browser. Actually, it is not native to the browser, but thanks to WebAssembly, it works fine there, too.
https://yjdoc2.github.io/8086-emulator-web/
Tomi Engdahl says:
limited-code hacks/ideas
When you’re running out of code-space… sometimes yah’s gots to hack. Here are some ideas.
https://hackaday.io/project/18574-limited-code-hacksideas
Tomi Engdahl says:
An Objective Look at Rust
Oct. 12, 2022
Rather than implementing an object-oriented programming architecture, the Rust language offers modular programming support, using traits rather than classes.
https://www.electronicdesign.com/blogs/altembedded/article/21252370/electronic-design-an-objective-look-at-rust?utm_source=EG+ED+Connected+Solutions&utm_medium=email&utm_campaign=CPS221103038&o_eid=7211D2691390C9R&rdx.identpull=omeda|7211D2691390C9R&oly_enc_id=7211D2691390C9R
Tomi Engdahl says:
Reading Rust for C Programmers
March 11, 2022
Here’s a very short intro to the syntax for Rust, the up-and-coming programming language in the embedded space.
https://www.electronicdesign.com/blogs/altembedded/article/21235152/electronic-design-reading-rust-for-c-programmers
Tomi Engdahl says:
Creating Bug-Free Embedded Software
April 24, 2023
Editor Bill Wong talks about tools for creating reliable embedded software applications in this Electronic Design TechXchange webinar.
https://www.electronicdesign.com/resources/webinars/article/21264567/creating-bugfree-embedded-software
Summary
Programmers would love to deliver bug-free code. I know I would. The challenge is in the details. If it was easy, then we would not have a need for the Common Vulnerabilities and Exposures (CVE) program to track bugs on a global basis.
There are many ways to address the creation of applications that will not fail or work improperly. However, challenges crop up when using programming languages like C. Bill Wong, Editor at Electronic Design, takes a look at the options and issues from static-analysis tools to new programming languages like Rust. He also touches on the rise of machine learning and artificial intelligence and how they are coming into play for programmers and embedded developers.
https://www.cve.org/
Tomi Engdahl says:
Coding Graphics in C: SetPixel, LineDraw, Moire and More!
https://www.youtube.com/watch?v=2bVhyB7Av8s
Dave takes you on a tour of the C code used to write graphics primitives for the ancient Commodore KIM-1 computer. See how setpixel, linedraw, and more are implemented from first principles.