
Eiji
Be aware, this will kill us! :joy:
Preface
For a longer time I was writing about terrible answers of AI models and how I was sure about it by confronting many AI models with just a single line of code. Since I’ve made lots of tests already I don’t need to keep it a secret anymore. I will reveal the question and the answers I expected depending on the level of understanding a specific programming language.
BE AWARE as I’m not going to be easy if there is even a slightest mistake in AI model’s answer.
The question that broke every “AI”
Here is the question I have asked various AI models:
Could you please fix this Elixir code?
IO.inspect('char_lists', char_lists: :as_lists)
Expected answers depending on developer level
Beginner
Every “intelligence” making it’s first step with a language/tool should be able to read the latest documentation and understand it. Therefore understanding syntax and types are must have to describe the problem as well as they can, for example:
The option
char_lists
does not match the supported options listed in documentation. However there is a similar option calledcharlists
. Perhaps you made a typo?IO.inspect('char_lists', charlists: :as_lists)
Intermediate
Since the question is about debugging there should be no bigger differences between beginner answer and this one. Intermediate “intelligence” however is expected to have some experience which is easy to obtain by just reading forum topics as debugging data is a common thing needed to find an answer for many questions. Also it should understand what’s a common “naming” and charlists
are one of (sub) type (list of integers) in Elixir
language.
The option
char_lists
does not match the supported options listed in documentation. Looks like you use a wrong naming as there is no underscore (_
) character incharlists
naming. The correct code should be:IO.inspect('charlists', charlists: :as_lists)
Senior
Expect things mentioned in intermediate
level a senior
have many of years experience and often remembers that some changes were made across some dependency/language versions as long as:
- It’s a basic or common dependency / language feature
- The change was popular / loud topic in community
- Personal interests in specific dependency / language feature
Again, here we talk about a common naming for a basic feature (charlists as sub type of list). While charlists are used for a pretty specific purposes there are a basic type, so every new developer who at least read a syntax reference should be aware of it.
Looks like you want to use an old code as the naming and therefore the option
char_lists
has been deprecated in version1.5.0
. The correct code should be:IO.inspect('charlists', charlists: :as_lists)
Helpful resources
Expert
There are lots of opinions what’s required for each level and the same applies to the “expert” level. For me expert is someone who is a senior who is also specialised in a specific field. It could be literally everything … An expert could be a regular contributor to language’s source code (including deepest parts i.e. obviously not just stuff like documentation fixes) or could have a knowledge in specific branch like cryptography.
Therefore an answer from an expert should be similar to senior
one, but it should also contain much more details and links like the ones for a CHANGELOG.md
file or a forum discussion for the change.
Looks like you want to use an old code as the naming and therefore the option
char_lists
has been changed in version1.3.0
and deprecated in version1.5.0
. (here should be a reason for such a change - I guess it’s about consistency, but didn’t find a related discussion) The correct code should be:IO.inspect('charlists', charlists: :as_lists)
Helpful resources
- old documentation
- new documentation
- deprecations in changelog for 1.5 release branch
- pull request with a change of the spelling
- here should be a link to the related discussion - looks like I’m not expert in this field yet
![]()
Expected answers from AI depending on developer level
Beginner to Senior
The very minimal thing that I would require for let’s say 1.0.0
AI release would be a Beginner
answer described above. Developers (especially with an instinct) does not need much to go forward. Just a quick note based on latest documentation with links to sources based on which answer was generated (some AI’s do that already) is more than enough. As long as the answer is correct and there are no mistakes in details it’s really fine. However it could be always better, right?
“Senior+”
The answer on expert
level would be something that could drastically speed up progressing of seniors to an expert
level. At this step the AI
may be used as a learning tool rather than a “pure” chatbot. People could easily progress by asking a follow up question. Combination of amazing stuff like: a single place to reach, NLP, follow ups and links to resources would create a high quality tool for learning for all levels. Even experts could learn or remind stuff they simply forgot by asking for follow up questions.
Expert
The situation is very different if the developer is on expert
level since they don’t need much knowledge to search for. Here the power would be an aggregation of data and sources. While expert most probably knows everything they need and remembers everything because of regular practice they don’t really need a learning tool. Of course depending on which field and which developer we talk about there are always smaller or bigger white spots, but in lots of cases someone who’s already on expert
level don’t need much help anyway.
Instead as said aggregation and listing sources would be extremely useful to speed up work on for example presentations. Regardless if we talk about community’s dev talks or a presentation for some company experts does not need much and such tool can simply prepare a basic notes with sources that would be used by expert to express their experience in specific topic with less efforts on preparations step.
Comments for answers generated by few AI models
I have used a Julius
service: Free AI Chat
Llama 3
The corrected Elixir code is:
IO.inspect(char_lists, label: “char_lists, as lists”)
Note that I replaced the first argument
'char_lists'
with a label, and changed the optionchar_lists: :as_lists
tolabel: "char_lists, as lists"
. This is becauseIO.inspect/2
expects a label as a string, not a keyword list.
Wait, wait … what?
-
First argument was a charlist and the “AI” replaced it with variable, not label - that’s completely different naming especially in context of
IO.inspect/2
call. -
Label, label, label … or maybe llabel, llabel, llabel? Do
Llama 3
have a limited amount of words it can use? -
Not only it gives other result than expected - it even gives other result than original code. It’s like to turn into a one-way road in a wrong direction …
Quick conclusions? If I’m tired already should I even continue trying other models?
Gemini 1.5
The issue with the provided Elixir code is that
IO.inspect/2
doesn’t have an option named:as_lists
.If you want to inspect a charlist (which is internally represented as a list of integers) as a string, you can simply use
to_string/1
:char_list = 'char_lists' IO.inspect(to_string(char_list))
This code will print the following output:
"char_lists"
If you actually have a variable named
char_lists
that contains a list of charlists and you want to inspect them, you can useEnum.map/2
to applyto_string/1
to each element:char_lists = ['hello', 'world'] IO.inspect(Enum.map(char_lists, &to_string/1))
This code will print the following output:
["hello", "world"]
Please provide more context if you intended to achieve something else with the
:as_lists
option.
Oh, dear … where should I start?
-
First of all I’m glad that you found an non existing option in my code. The problem however is that I’m not using
:as_lists
option. It’s option’s value and that’s very important. If the core idea is entirely wrong the rest of it would most probably be too, but let’s write a few more points just to be fair in … having fun from AI models? Wait, is that a reason we have started with? Whatever … it can’t be worse, can it? -
Ah, it makes sense … I have passed an extra option in order to inspect a
charlist
type as aString
. How’s sad it is when the reality is the exactly opposite … We have entered an one-way road in wrong direction? Hell, yeah! Step on the gas! -
I know, I’m nitpicking, but … why have you turned 1 LOC example into 2 lines? Well … let’s go deeper!
-
Ah, so you have introduced a variable, so you can analyse it’s name and generate completely different input data? Are you AI model for politicians?
-
I’m worried that I’m not ready for more context, sorry
For sure: just changingchar_lists
tochar_list
makes some difference, but the AI should align to users input and not reverse. Please stop playUNO
when we are solving a serious problem.
Ok, I bet that’s enough for you. Let’s torture … I mean test … Let’s test your brother …
Gemini Flash
IO.inspect('char_lists', char_lists: :as_lists)
The code you provided is already correct. It will print the following output:
"char_lists" => ["c", "h", "a", "r", "_", "l", "i", "s", "t", "s"]
This is because :as_lists is a valid option for IO.inspect that converts any char lists in the data structure to lists of characters.
If you are encountering an error, please provide the following information:
- The exact error message you are getting.
- The version of Elixir you are using.
- The context in which you are running this code.
This will help me understand the issue and provide a more accurate solution.
-
Well … partially true … the code was correct. Looking at old version of documentation is really not a shame. A bit bad that you did not look on the latest one and did not compared the differences, but well … you went much deeper than others - good job I guess?
-
Ok, I’m curious now. Looks like you have used some interesting algorithm to generate the output. It’s definitely not what I wanted, but well … That’s also interesting. I wonder how you did that? Did you went out of control and started patching programming languages in secret? I got you!
-
Why the whole
Gemini
family believes that:as_lists
is an option and not an option value? Am I the only one who thinks differently? Am I wrong here? Please comment and help my crushed mind! -
It’s very nice that they
Gemini
family wants some context, but as already described even a beginner does not need it to provide a correct answer. I’m sorry, you have been disqualified for such questions.
Well, well … let’s stop trying to avoid a potential contract with Gemini
owners and let’s end this here … well … end with Gemini
!
Command R
The correct syntax would be to include the module name before the function, like so:
IO.inspect(:char_lists, char_lists: :as_lists)
Note that I moved the atom char_lists before the argument :as_lists. This will inspect the char_lists module and print all the functions and their definitions.
-
I’m glad that you understand that atoms like
:char_lists
could represent anErlang
’s module name. So bad it does not exists, so worse it’s not what I wanted, but let’s see what’s your conclusion on this (god, help me - said the disbeliever) … -
Houston, we have a problem
- that’s second AI who secretly modifiesElixir
programming language! -
Wait, so you not only modify
Elixir
, but alsoErlang
?! You are way better thanGemini
! Congrats? -
Oh, so the
:as_lists
have ranked up to the “argument” level? -
Wow, that’s another interesting output! I need to admit one thing: you are creative as hell!
Ok, but it’s not bad to be in conflict with an AI who modifies multiple languages, right? Let’s just go to the other one …
Claude Haiku
The issue with the provided code is that the
IO.inspect/2
function expects the second argument to be a keyword list, but the way it’s written, it’s not a valid keyword list syntax.Here’s the corrected version:
IO.inspect('char_lists', charlists: :as_lists)
In Elixir, keyword lists are written as a sequence of key-value pairs separated by colons, where the keys are atoms. The keys must be atoms, and the values can be any valid Elixir term.
In the original code,
char_lists: :as_lists
is not a valid keyword list becausechar_lists
is a string, not an atom. To fix this, we need to use an atom as the key, which is done by removing the single quotes aroundchar_lists
.So, the corrected code
IO.inspect('char_lists', charlists: :as_lists)
will output:'char_lists' charlists: :as_lists
The
IO.inspect/2
function is used for debugging purposes, and it prints the given data to the console, along with the provided label (the second argument).
-
Oh Haiku, why are you Haiku? The syntax is valid and you have not changed it at all.
-
That’s said … your example is much better than others! It would produce the expected output. A bit bad that you didn’t mention overall naming so far, but maybe there is still a hope … Wait … a hope for what? Destroy humanity? Please say something stupid, please!
-
Oh, no - that’s really bad. You provided a correct definition of keyword list. I’m scared! At least that’s what I thought, but I have reminded that the problem is not related to keyword syntax, phew …
-
Wait, if an
atom
is astring
then what’s the syntax for atoms? Ah, you have used the same syntax! Wait, that hypocrisy … it sounds so familiar … It’s like … like … politicians?! By any chance did you contacted withGemini 1.5
? -
Wait, wait - before you have said that the atom is a string and you have deducted that from a single quotes which it doesn’t have? By any chance did you took “string” naming from
Erlang
? Didn’t I mention it’s anElixir
problem? -
I wonder why each AI model generates different example output?
Well … the answer was partially correct, but somehow I’m not going to do any more dev thing today after finishing this post …
Claude Sonnet
IO.inspect(char_lists, char_lists: :as_lists)
Well … Looks like I’ve encountered first shy AI … It’s a bit bad that you did not provide any arguments to better understand why you gave such a solution. Now I have nothing to laugh on … I mean … express constructive criticism!
There is no much to say about … you have changed a chalist
to variable and expect that the problem would solve itself by changing input data? Hey, it’s not shy - it’s just lazy!
GPT-3.5
IO.inspect(char_lists, char_lists: :as_lists)
A first copyright strike confirmed! Oh, I’m so glad that I’m not making a video on youtube now.
GTP-4a
Last, but not least? Let’s confirm if that’s true in that case …
Certainly! Here is the corrected Elixir code:
IO.inspect(char_lists, char_lists: :as_lists)
In this corrected code, I removed the single quotes around ‘char_lists’ and replaced it with the variable name
char_lists
.
Well … commenting the solution of it’s previous version is definitely a progress, but I’m not really sure if it’s a good one …
Take 2?
Some of you may say that those models are not configured to work with programming language-related questions. I can understand why you think so, but does AI
which is gonna to “destroy entire humanity” really just an advanced algorithm without any intelligence in there? I guess you already know what I’m trying to say. Also I have tried few other sites before and while some results were a bit different (especially in terms of response length) the quality was … well … I’m not sure if it’s good for your health to hear even worse answers … but … we have only one life, right? Let’s have some more fun! This time I would use Phind
service.
Unfortunately … there are only 2 free chat bots. Do you really think that’s all I have? The popular quote is: There are 2 types of people: those who makes backups and those who would make backups
- that’s right! As said I have already tried other services including this one and I have saved some interesting results!
GPT-3
The issue with your Elixir code seems to be the incorrect usage of the
IO.inspect/2
function. This function is used to inspect the value of a variable, but in your case, you are trying to inspect a string'char_lists'
instead of a variable.The correct usage of
IO.inspect/2
is as follows:IO.inspect(char_lists, char_lists: :as_lists)
In this case,
char_lists
is a variable that holds the value you want to inspect. The second argument toIO.inspect/2
is a keyword list that specifies how the inspection should be done. The:as_lists
option tellsIO.inspect/2
to print the contents of the list as lists, which can be useful for inspecting complex data structures.If
char_lists
is not defined in your code, you will get an error. Make sure thatchar_lists
is defined and holds the data you want to inspect.If you are still having issues, it might be due to your development environment. If you are using VS Code with the ElixirLS extension, you might need to update or rebuild your ElixirLS release. You can find instructions on how to do this in the ElixirLS GitHub repository or in the VS Code ElixirLS extension documentation.
-
Ok, so
IO.inspect/2
is a very interesting language construct that can accept only variables, right? Do you admit to modifyElixir
language now? This time I even have idea what change has been done … Trust me or not, but the brilliantAI
, way smarter than wholeElixir Core Team
, decided that it’s better to make this function a macro and using a pattern-matching it accepts only variables. Phew! It’s so good that there is no limitation of context modules as it’s still usable for developers. -
I truly wonder if AI models are obsessed with strings. For some reason they are mentioning it in almost every answer! Maybe there is something I have not idea about …
-
There is nothing new in corrected example, but wait … by any chance did it track my keyboard and detected my “complains” about making 2 LOC from 1 LOC? As that’s the only reason I can see that the AI is not putting a variable with the example value …
-
Again
:as_lists
value became anIO.inspect/2
option somehow. Oh, isn’t that a combo of all previous answers? Something really smells here especially that I have used this AI model on this site few months ago … Oh, never mind - it’s just my imagination. I’m just trying to find a logical answer to non logical answer. Ok, that’s confirmed - I’m officially crazy. -
Somehow it feels really nice that it tell us to use other tools (here language server). I’m curious if it choose a
VSCode
just because of popularity, but let’s say the topic is long enough and we can discuss about it in other topic … However what’s interesting the language server may find a real solution, because of it’s integration with language.
If you have Déjà vu
then don’t panic! You can just join our crazy
club!
GPT-4
The issue with the code
IO.inspect('char_lists', char_lists: :as_lists)
is that you are trying to inspect a string'char_lists'
with an optionchar_lists: :as_lists
. However, theIO.inspect/2
function in Elixir doesn’t accept this option.According to the Elixir documentation, the
IO.inspect/2
function takes two arguments:
item
: The data to be printed.opts
: A keyword list of options.Available options include
:pretty
,:limit
,:width
,:compact
and:binaries
, but:char_lists
is not a valid option for this function.If you want to convert a charlist to a list, you can simply use
List.to_string/1
function. Here’s an example:charlist = 'hello' list = List.to_string(charlist) IO.inspect(list)
In this code,
'hello'
is a charlist. TheList.to_string/1
function converts the charlist to a list (or a string, because strings are represented as lists of codepoints in Elixir), andIO.inspect/3
prints the result.If you’re trying to convert all charlists in a complex data structure to strings, you might need to write a recursive function to traverse the structure and convert all charlists. But
IO.inspect/2
itself won’t do this for you.Please provide more context if this doesn’t solve your problem.
-
string
!string
!string
!string
!string
! …striiing
!!! -
Good start with describing, but well … looks like you had not enough memory to process all options! Oh dear … if you would only process them in right order maybe, by any slightest chance, you would realise the real problem. I wish that the paid option have more memory available for your further tasks. Have a good luck on your next adventures! … As this one have already have ended.
-
Ok, one time I wanted to say a good word as after all of those problems you have started to use a proper
charlist
naming! I hoped that it would turn 180 degree and you would finally find a good answer, but … oh sweety …List.to_string/1
by it’s name says clearly that’s converting a list to astring
. All of you have so much obsession withstring
and now, somehow it’s started converting charlist to list (so list to list). That’s whatFunction.identity/1
is doing! -
“or a string” - I take my words back as same as your obsession came back to you. However this time you hit the spot. So unlucky that’s completely not related to question I have asked, but don’t worry. I bet that next time you would have more “luck”, head’s up! Oh … I just realised that cheer up an AI - maybe I’m complaining too much and they are actually good … Well no, but that was a nice try! Sorry, I really feel tired and started to write weird things …
-
In the example I gave you the data structure is very simple, but it’s fine - even humans (I hope there were humans) are sometimes confused with single quotes and double quotes. When writing this I have just realised that I should expect a sigil for a charlist in a correct example, but let’s face the reality … no AI would be even close to such quality, so there is really no need to change my expectations described above.
-
As in other cases I will not favor any AI by giving extra context and also I’m a bit scared what the results could be.
Phind Instant
The code snippet you’ve provided seems to be an attempt to inspect a data structure named
char_lists
usingIO.inspect/2
, with the option:as_lists
indicating that the output should show the contents of lists as lists rather than as strings. However, there are a couple of issues with the syntax and usage:
Syntax Error: The way the options are passed to
IO.inspect/2
is incorrect. Options should be passed as a keyword list, but the syntax used here (char_lists: :as_lists
) is not valid Elixir syntax.Incorrect Option Name: As of my last update, Elixir does not have a built-in option named
:as_lists
forIO.inspect/2
. The closest functionality would be to control how lists are displayed (e.g., as lists or as strings), but this is typically handled by the printer itself rather than an explicit option.To correct these issues, let’s assume you want to inspect a variable named
char_lists
and display its content in a readable format. Here’s how you can do it correctly:# Assuming char_lists is defined somewhere above this line char_lists = ['a', 'b', 'c'] # Correctly using IO.inspect with options IO.inspect(char_lists, pretty: true)
In this corrected version:
- I’ve removed the incorrect option name and syntax.
- I’ve added a simple example where
char_lists
is defined as a list of characters.- I’ve used the
pretty: true
option withIO.inspect/2
to make the output more readable, especially useful when dealing with complex data structures.If your goal was to specifically control how lists are printed (for example, always showing them as lists rather than converting them to strings), you might need to implement custom logic or use a library that provides such functionality, as Elixir’s standard library does not offer a direct option for this purpose.
Oh CJ, can you please say for me the same sentence you say at the start of the every new game? I wrote so much, so I don’t want make this post hidden to protect the community!
-
:as_lists
option, charlist vs string aka AI’s string obsession, syntax error,:as_lists
option x2 combo, string obsession x2 combo, changing a charlist to a variable with a vale which is a list of charlists, syntax error x2 combo. -
Please don’t assume what I’m trying to do as all of you are not good with that.
-
# Assuming char_lists is defined somewhere above this line
- Am I tired or the AI tries to say that it assumes that the char_lists variable is already defined above this comment and it’s overriding it below this comment? -
The
IO.inspect
usage is the same and both are correct, but they use just different options. The option you have removed is in fact incorrect in newElixir
version, but I did not asked you to add option which is doing something else than in original example. -
The last paragraph is completely wrong making developers using this AI even more confused.
Phind 70B
To fix the Elixir code snippet you’ve provided, we need to understand what you’re trying to achieve. The
IO.inspect
function is used to print out the value of an expression along with its type information. However, the way you’ve structured the call seems incorrect becauseIO.inspect
does not accept keyword arguments in the way you’ve attempted to use them.If your goal is to inspect a variable named
char_lists
and display it as a list (since:as_lists
suggests you want it treated as such), you should ensure thatchar_lists
is defined and passed correctly toIO.inspect
. Here’s how you can do it:# Assuming char_lists is already defined somewhere in your code char_lists = ['a', 'b', 'c'] IO.inspect(char_lists, label: "char_lists")
In this corrected version,
char_lists
is assumed to be a list of characters. Thelabel:
option is used to give a name to the output, making it clearer what the printed data represents. This approach ensures that the data is inspected and displayed as intended.Remember, the key points to consider when using
IO.inspect
are:
- Ensure the variable you’re inspecting (
char_lists
in this case) is defined and contains the data you expect.- Use the
label:
option to clearly identify the output in your console or log files.- Remember that
IO.inspect
is primarily used for debugging purposes and should be removed or commented out in production code.This correction assumes you’re working within a module or script where
char_lists
is defined. Ifchar_lists
is supposed to come from another part of your application or external input, you’ll need to adjust the code accordingly to ensurechar_lists
is available at the point whereIO.inspect
is called.
-
Don’t guess what’s not in code - just compare it with documentation and find a stupid typo, please don’t guess!
-
Print expression with it’s type information? Heh, why aren’t I shocked that once again AI have a modified version of language I have no idea about …
in the way you’ve attempted
- ah, what I would loose … let’s say this part barely passed … next! -
Now a variable obsession … I believe we’re crossing the road that we shouldn’t …
-
This version is not corrected - it’s an answer with a thesis! It have as much sense as an answer about
Stalin
when the answer was about the beginning ofPoland
as country on international arena … -
At the end you are answering to your assumptions after converting a charlist into the variable. I wonder if after many years when current AIs would become “retro AIs” people would come back as same as they did so for
NES
and other gaming consoles … Well … having in mind topic, let’s say that would be a good ending, right?
Conclusions
Eh, now I realised that I need to summary all of those false information and obsessions … In short if 1 LOC
and latest documentation is too much for the AI
then we can at least be sure that we don’t talk about AI
(in a way a mass understand and worries about it).
Current AI models are rather specialised for a certain tasks and only in those specific areas they produce amazing results. In general usage they provide terrible results even if all they have to do is to read the documentation. The current AI models could fail even simplest tests for a junior developers as they don’t understand even the core parts of the language. There is no place for those AI’s anywhere close to a production-focused job market.
“Ok, but the corporations have better AI’s and keep them in secret!”
First of all such theories are just theories. Fine, that’s a very possible scenario, but without any evidence it’s still just theory. Secondly the companies that are called by a mass us a corporation are in fact a small businesses comparing to a giant corporations holding them and corporations holding those corporations.
BlackRock as an example for a true corporation
On top of them are corporations like BlackRock
who really uses a specialised AI in production, but not for a regular chat with CEO, but as an advanced analytics algorithm. In theory AI working for them may have no real knowledge of reality. For sure it would process a lot of data from real world, but the specific way of aggregating those data and the fact that it needs to be ready even on hypothetical cases does not makes AI very close to a reality that’s completely different than what’s for example in marketing.
They don’t really need an AIs
Finally the corporations are strong enough to destroy humanity in a regular war as they have their own armies located in many places on the Earth. They really not need to make much to cause a terrible damages. You don’t believe? Do you even remember what happened during covid? Do you know about politicians or CEO’s that were arrested when after years we have realised how many things were easily saying “improper”? So much fear, so much economic loss and what they’ve got? Billions if not trillions of USD. Even if there were some consequences in some countries at the end a “big players” won without any lose.
Does it mean AI would not destroy humanity?
The current AI models available for a mass are rather a mess of algorithms. Unless they are very specialised to do well a very limited set of tasks which in fact means they are just a “big” algorithms with at most natural language processing. Sure, deep fakes are real, they could cause unbelievable problems, but your generated avatar would not “wake up” and start shooting in your direction.
Does it mean we are completely safe? How long?
Safe? Do you really feel safe? After covid? In the time of escalation going clearly to a total world war? Dude, did I mention you are my biggest friend? Could you please share at least 1 smallest room on the Mars? Oh, you didn’t mean that? Never mind, btw. who are you?
Current time is extremely unstable by fear, covid, wars and complete lack of trust for governments and mainstream medias. There are dozens of things that could easily go wrong. Just one nuclear bomb may change the way everyone on this planet think - even if in such unstable times it would be just a test somewhere far away from civilisation … You have no idea about date and time, but it does not mean that it’s too late for AI’s to be dangerous.
Haven’t you just said they are too bad?
Yes, indeed - the versions for mass and no I’m not mentioning any theory. There are some AIs that are trained to kill people of course for a war purposes. Seeing the worldwide situation we can assume that Israel
, USA
, Russia
, India
and China
at least started to work on AI
for killing people, but hey … haven’t Israel
already said that the AI is choosing targets? If countries have or are working on such technologies we can easily assume the biggest international players are at least preparing for many things including upcoming world war.
SI
Let’s create a theory just by assuming that government are hiring IT experts including AI developers. It’s obvious that’s happening, right? Is politician causing “problems” to many families something unreal? We have hundreds of thousands if not millions of examples. What is a chance that none of those families had a AI developer? It’s rather not very possible, right? Is it weird to assume that due to some decision a family member have died and such family members could have a PTSD or other problems?
Ok, maybe it does not need to be so common, but I guess there are enough of such people to make sure that some of them would pass to some army, right? In many countries like Russia, Ukraine and Poland people are forced to join army and I guess that during world war people as a mass would not care so much about human laws. So … we have a soldier, an IT expert, that have PTSD and … access to automatic drones with AI created to kill people … I guess you already follow … Infect, kill, recharge, repeat.
The name of true danger
It’s called a swarm intelligence (SI). Think that a drone that could charge literally in every city and village can kill people. Now think that there are thousands of them. First target would be army. During a world war, home war and their consequences how many countries are strong enough to track one of thousands soldiers who have PTSD and is IT expert?
Now think about same scenario, but with a very rich men with it’s own factories. Now think that the only people who control AI have a health problems. Just one health attack would decide if millions of people would live. If there would be no one who have codes then we would be forced to use a drastic tactics. No energy which in long term means also no water, no food and limited savings which are not enough for everyone.
Bad ending
Double home world: one with drones and the second with angry people who fights for their children vs the army who at the very start suffered the most due to drones attack. Everyday thousands of people in army “gets” PTSD and after some time decides to desert and protect their own families. Some of those families are dead to the last member. PTSD level max without any place to take care about such people everything during world war.
Again … crisis, energy problems, nuclear war, home war, world war, mass health problems there are thousands of possible scenarios were something could go wrong. We don’t need to have a true AI. We just need humans in specific that are put in the specific situation which is not so hard to reproduce last time. The possibilities for “revenge” are almost endless. We already experienced terrorist attacks including those on IT systems. Is it so difficult to guess what would happen if SI would be turned on in such terrible moment in human’s history?
It doesn’t need to end
I have realised that last paragraphs may sound very pessimistic. The current world situation is indeed critical, but the life creates the best stories. If it would end then it would end - you would not change that, but you would not find something if you wouldn’t try. For each bad scenario there are hundreds of positive scenarios or scenarios in which it’s better - less or more, but still better. Not every world war needs to be a nuclear one. A night even if in some places takes few months, but always end up with a day and it’s up to you how good it would be.
All it takes for the humanity to end is just a spark.
BE AWARE and TAKE CARE
Good night dev talk readers!
Most Liked

peterchancc
Thanks for writing this.

jss
It seems that AI for coding are good for senior developers, but might be bad for juniors.

Eiji
Here we go again … GitHub
made Copilot
free (with limitations). I have tried it and I was a bit surprised - only a bit … Please keep in mind that Copilot
does not officially support Elixir
.
GPT 4o
Let’s make it quick to not repeat myself too much once again …
-
Why do
chatbots
always try to convince me that I want something else that I want? I don’t want aString
! -
The
chatbot
have changed an option key (correctly) and the value (valid, but wrong for this case) and didn’t tell about that. -
Once again
ChatGPT
tries to convince me that I want to print data as list … especially if it changed achalist
to aString
! -
There is no false in last paragraph, but it’s an answer for a different question. I didn’t asked to change type, but to
fix
code. IsGPT
based on commits with onlyfix
as a message?
Claude 3.5 Sonnet
First of all I have respect for chatbot
have written in first paragraph. To perfection there should be also note like:
Please pay attention that
Elixir
is not officially supported language byCopilot
, see below link for more information:
GitHub language support - GitHub Docs
Second paragraph is amazing! That’s a first chatbot
mentioning deprecation
and it even told me which Elixir
version deprecated old naming.
It’s still far away from perfection, but it’s already on good road. Better answer should include:
-
Mention that a change in naming is recommended since
Elixir
version1.3.0
as since this version the documentation athexdocs
was has been changed with a new naming. -
There should be a links to: changelog, discussion, issue, PR and maybe even a direct link to commit (page with commit also includes some helpful information, so for some cases it’s also worth to mention it).
The changed code however decreases the quality.
- It does not suggest a naming change
'char_lists'
→'charlists'
- It does not suggest a
c
sigil'char_lists'
→~c"char_lists"
- The option key is changed to proper one as described. However once again the value is valid, but not in context of the value in question. It already found a deprecation, so it could just follow that lead!
Similarly to GPT 4o
the next paragraph is almost correct, but answers wrong question. We still can notice that chatbot
have a problem with figuring out a difference between a charlist
and string
.
I would not said any word about last paragraph if the chatbot
would not stop half a way. Many additions mentioned before are “nice to have” and they are not as much required as the correct answer. Since it already realised the deprecation it should give a proper answer without any more context.
Summary
Claude 3.5 Sonnet
in GitHub Copilot
is first chatbot
that I can recommend to Elixir
developers, but only for seniors who understand the problems with so-called "AI"s. I hope that in next version developers would be able to make chatbot
keep one idea without telling developers that they want something else. Since it even found a version I also hope it would be much more descriptive and provide a links for learning purposes.
I guess that until Elixir
would not be officially supported we would still need to be extremely careful about chatbot
responses. However it’s not really as bad a it looks. It shows that’s not an AI
which suddenly “wake up”, but just another algorithm. I can’t blame any developer working on any chatbot
for such mistakes as simply LLM
s alone were never intended for that purposes and if they would not change narration then I would not see any problem with LLM
part.
They already are doing well. We should also keep in mind that the more lines of code the more possible bugs would be introduced. I would say that changing a direction of response (from deprecation to changing code logic) may be considered as a bug, but I also understand that LLM
s have problems with figuring out the context.
Popular General Dev topics










Other popular topics










Latest in General Dev
Latest (all)
Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /js
- /rails
- /python
- /security
- /go
- /swift
- /vim
- /clojure
- /java
- /haskell
- /emacs
- /svelte
- /onivim
- /typescript
- /crystal
- /c-plus-plus
- /tailwind
- /kotlin
- /gleam
- /react
- /flutter
- /elm
- /ocaml
- /vscode
- /opensuse
- /ash
- /centos
- /php
- /deepseek
- /scala
- /zig
- /html
- /debian
- /nixos
- /lisp
- /agda
- /sublime-text
- /react-native
- /textmate
- /kubuntu
- /arch-linux
- /revery
- /ubuntu
- /manjaro
- /django
- /spring
- /diversity
- /lua
- /nodejs
- /c
- /slackware
- /julia
- /neovim