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_listsdoes 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_listsdoes not match the supported options listed in documentation. Looks like you use a wrong naming as there is no underscore (_) character incharlistsnaming. 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_listshas 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_listshas been changed in version1.3.0and 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_liststolabel: "char_lists, as lists". This is becauseIO.inspect/2expects 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/2call.
-
Label, label, label … or maybe llabel, llabel, llabel? Do
Llama 3have 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/2doesn’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_liststhat contains a list of charlists and you want to inspect them, you can useEnum.map/2to applyto_string/1to 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_listsoption.
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_listsoption. 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
charlisttype 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_liststochar_listmakes some difference, but the AI should align to users input and not reverse. Please stop playUNOwhen 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
Geminifamily believes that:as_listsis 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
Geminifamily 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_listscould 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 modifiesElixirprogramming language!
-
Wait, so you not only modify
Elixir, but alsoErlang?! You are way better thanGemini! Congrats?
-
Oh, so the
:as_listshave 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/2function 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_listsis not a valid keyword list becausechar_listsis 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_listsThe
IO.inspect/2function 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
atomis astringthen 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 anElixirproblem?
-
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/2function. 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/2is as follows:IO.inspect(char_lists, char_lists: :as_lists)In this case,
char_listsis a variable that holds the value you want to inspect. The second argument toIO.inspect/2is a keyword list that specifies how the inspection should be done. The:as_listsoption tellsIO.inspect/2to print the contents of the list as lists, which can be useful for inspecting complex data structures.If
char_listsis not defined in your code, you will get an error. Make sure thatchar_listsis 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/2is a very interesting language construct that can accept only variables, right? Do you admit to modifyElixirlanguage 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_listsvalue became anIO.inspect/2option 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
VSCodejust 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/2function in Elixir doesn’t accept this option.According to the Elixir documentation, the
IO.inspect/2function takes two arguments:
item: The data to be printed.opts: A keyword list of options.Available options include
:pretty,:limit,:width,:compactand:binaries, but:char_listsis not a valid option for this function.If you want to convert a charlist to a list, you can simply use
List.to_string/1function. Here’s an example:charlist = 'hello' list = List.to_string(charlist) IO.inspect(list)In this code,
'hello'is a charlist. TheList.to_string/1function converts the charlist to a list (or a string, because strings are represented as lists of codepoints in Elixir), andIO.inspect/3prints 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/2itself 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
charlistnaming! I hoped that it would turn 180 degree and you would finally find a good answer, but … oh sweety …List.to_string/1by it’s name says clearly that’s converting a list to astring. All of you have so much obsession withstringand now, somehow it’s started converting charlist to list (so list to list). That’s whatFunction.identity/1is 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_listsusingIO.inspect/2, with the option:as_listsindicating 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/2is 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_listsforIO.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_listsand 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_listsis defined as a list of characters.- I’ve used the
pretty: trueoption withIO.inspect/2to 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_listsoption, charlist vs string aka AI’s string obsession, syntax error,:as_listsoption 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.inspectusage is the same and both are correct, but they use just different options. The option you have removed is in fact incorrect in newElixirversion, 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.inspectfunction 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.inspectdoes not accept keyword arguments in the way you’ve attempted to use them.If your goal is to inspect a variable named
char_listsand display it as a list (since:as_listssuggests you want it treated as such), you should ensure thatchar_listsis 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_listsis 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.inspectare:
- Ensure the variable you’re inspecting (
char_listsin 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.inspectis 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_listsis defined. Ifchar_listsis supposed to come from another part of your application or external input, you’ll need to adjust the code accordingly to ensurechar_listsis available at the point whereIO.inspectis 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
Stalinwhen the answer was about the beginning ofPolandas 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
NESand 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
chatbotsalways try to convince me that I want something else that I want? I don’t want aString!
-
The
chatbothave changed an option key (correctly) and the value (valid, but wrong for this case) and didn’t tell about that.
-
Once again
ChatGPTtries to convince me that I want to print data as list … especially if it changed achalistto 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
fixcode. IsGPTbased on commits with onlyfixas 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
Elixiris 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
Elixirversion1.3.0as since this version the documentation athexdocswas 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
csigil'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 LLMs 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 LLMs have problems with figuring out the context. ![]()
Popular General Dev topics
Other popular topics
Categories:
Sub Categories:
- All
- In The News (10373)
- Dev Chat
- Questions (34)
- Resources (119)
- Blogs/Talks (27)
- Jobs (3)
- Events (15)
- Code Editors (59)
- Hardware (57)
- Reviews (5)
- Sales (16)
- Design & UX (5)
- Marketing & SEO (2)
- Industry & Culture (14)
- Ethics & Privacy (19)
- Business (4)
- Learning Methods (5)
- Content Creators (7)
- DevOps & Hosting (9)
Popular Portals
- /elixir
- /rust
- /ruby
- /wasm
- /erlang
- /phoenix
- /keyboards
- /rails
- /python
- /js
- /security
- /go
- /swift
- /vim
- /clojure
- /emacs
- /haskell
- /java
- /svelte
- /onivim
- /typescript
- /kotlin
- /crystal
- /c-plus-plus
- /tailwind
- /react
- /gleam
- /ocaml
- /flutter
- /elm
- /vscode
- /ash
- /opensuse
- /html
- /centos
- /php
- /deepseek
- /zig
- /scala
- /sublime-text
- /lisp
- /textmate
- /react-native
- /debian
- /nixos
- /agda
- /kubuntu
- /arch-linux
- /django
- /revery
- /ubuntu
- /spring
- /manjaro
- /deno
- /nodejs
- /diversity
- /lua
- /julia
- /c
- /slackware








