I was trying to avoid coming off as rude, condescending or insulting. The truth is that his post made me feel like I'm trying to talk grown folks stuff at the kiddie table. If it continues, it will just devolve into madness like the Twitter thread. I'm trying to avoid that.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
I was trying to avoid coming off as rude, condescending or insulting. The truth is that his post made me feel like I'm trying to talk grown folks stuff at the kiddie table. If it continues, it will just devolve into madness like the Twitter thread. I'm trying to avoid that.
I disagree with " I'm trying to talk grown folks stuff at the kiddie table". I agree comments like that do lead to devolving threads.
I disagree with " I'm trying to talk grown folks stuff at the kiddie table".
It's not really a matter of agreeing or disagree with it. I'm describing here how I felt. It would make more sense to say that you think I should not feel that way. For the record I got nothing against wes4dbt. I just don't think we can have these kinds of discussions. It will only frustrate me. I think it's better for me to have these conversations with someone of like mind.
I will still comment on what I think about things here and there, but I'm done with all that back and forth. Since the Twitter thread, I've realized that there is nothing to be gained by debating with the "other side".
I think this whole Trump thing is more bogus nonsense and that's that. Either you agree or not. I ain't fixing to argue about it for another 10 pages.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
It's not really a matter of agreeing or disagree with it. I'm describing here how I felt. It would make more sense to say that you think I should not feel that way. For the record I got nothing against wes4dbt. I just don't think we can have these kinds of discussions. It will only frustrate me. I think it's better for me to have these conversations with someone of like mind.
I will still comment on what I think about things here and there, but I'm done with all that back and forth. Since the Twitter thread, I've realized that there is nothing to be gained by debating with the "other side".
I think this whole Trump thing is more bogus nonsense and that's that. Either you agree or not. I ain't fixing to argue about it for another 10 pages.
OK...fair enough. But another way to interpret that is you do have time to waste with anyone that doesn't agree with you. " Since the Twitter thread, I've realized that there is nothing to be gained by debating with the "other side". " Some people prefer "echo chambers". Millions of Fox viewers can vouch for that.
I was going to say it was just cynicism, which I do feel is deadening, but then I thought a bit more about it. Niya is from some unnamed Caribbean nation. Historically, the US has treated those islands something like a pigeon treats a statue. His view might make quite a bit of sense from that perspective.
In the US, we see a certain amount of difference. From Europe, there's probably quite a different view of the US. They probably see us as something like a volcano: Interesting, scenic, but with the potential to almost randomly destroy everything. The view from the Caribbean...is probably not that. The different presidents, whose differences are so important to us, are just different pigeons to them: The end result is the same.
I was going to say it was just cynicism, which I do feel is deadening, but then I thought a bit more about it. Niya is from some unnamed Caribbean nation. Historically, the US has treated those islands something like a pigeon treats a statue. His view might make quite a bit of sense from that perspective.
In the US, we see a certain amount of difference. From Europe, there's probably quite a different view of the US. They probably see us as something like a volcano: Interesting, scenic, but with the potential to almost randomly destroy everything. The view from the Caribbean...is probably not that. The different presidents, whose differences are so important to us, are just different pigeons to them: The end result is the same.
Ukrainians might disagree...the last UA president wanted campaign dirt on his American political opponent in return for military support. The current President is giving them full military support as long as they fight.
Disagree with what? I don't see how that is really relevant to what I said. Ukraine isn't an EU country, and it certainly isn't a Caribbean nation, and those are the only two groups I mentioned. I could have gone on to how I would expect African nations and some Asian nations to see us, but I didn't. Ukraine would be an example of those.
Disagree with what? I don't see how that is really relevant to what I said. Ukraine isn't an EU country, and it certainly isn't a Caribbean nation, and those are the only two groups I mentioned. I could have gone on to how I would expect African nations and some Asian nations to see us, but I didn't. Ukraine would be an example of those.
I was referring to your statement:
"The different presidents, whose differences are so important to us, are just different pigeons to them: The end result is the same." For the Ukrainians the difference between the last President and the current one is vast. Same with the European countries fighting with us. The last one wanted to get rid of NATO and the current supports making it stronger. Huge difference. Trump slammed Germany every chance he got, Biden doesn't.
On a global scale one President pulled out of the climate accord and the next put us back in. That affects the Caribbean.
Last edited by TysonLPrice; Mar 27th, 2023 at 01:03 PM.
Wouldn't it be good if Trump used chatGPT to some good effect, such as correcting his grammar, making sure what he says actually means something, checking that the words he uses exist, ensuring that what he says is sensible thing to say for an intended President. ChatGPT might be of some real use here.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.
I was going to say it was just cynicism, which I do feel is deadening, but then I thought a bit more about it. Niya is from some unnamed Caribbean nation. Historically, the US has treated those islands something like a pigeon treats a statue. His view might make quite a bit of sense from that perspective.
In the US, we see a certain amount of difference. From Europe, there's probably quite a different view of the US. They probably see us as something like a volcano: Interesting, scenic, but with the potential to almost randomly destroy everything. The view from the Caribbean...is probably not that.
Something like that. There's a little more nuance but yes, it's about perspective. However, it's not just about our relationship to America in terms of American foreign policy. It's also about cultural differences and economic differences too. All of these things together gives one a completely different perspective on the world.
Originally Posted by Shaggy Hiker
The different presidents, whose differences are so important to us, are just different pigeons to them: The end result is the same.
This is pretty accurate, though there is some nuance here too. Both the left and right in America are really just a single system of control that works by pitting them against each other. The current culture war is the result. It keeps everyone distracted so they can never fully realize what America actually is. Americans think American is the land of the brave, home of the free bla bla bla......That's nonsense. America is a business. They are in the business of plundering the world. Granted, they don't do it through sheer military conquest like the empires of the past but rather through more underhanded methods like proxy wars or covert military operations. They also rely on the implicit threat of a conflict with their powerful military to obtain more favorable terms in negotiations with both enemies and allies alike.
This is also where my extreme hostility towards liberalism comes from. I see it as a kind of cultural imperialism. For example, in the Twitter thread jmc trying to convince me that my definition of a woman is wrong, outdated and hateful is nothing short of a blanket judgement of an entire culture. There is no better example than this of imperialistic entitlement.
Anyways moving on.....The wealth obtained by America through these imperialistic practices are funneled into the hands of a few American families and while they are doing that, the rank and file American never notices because they are too distracted by the Kardashians and reality TV, arguing about gender and pronouns, arguing over Trump, environmental alarmism etc.
Don't get me wrong though, I don't blame them. Any powerful empire would do the same thing and perhaps America is the most benevolent dictator the world would ever see and if they didn't accept the role, someone far worse would no doubt have filled that void.
All I'm saying is that I'm not under any illusions about how things really work.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
OK...fair enough. But another way to interpret that is you do have time to waste with anyone that doesn't agree with you. " Since the Twitter thread, I've realized that there is nothing to be gained by debating with the "other side". " Some people prefer "echo chambers". Millions of Fox viewers can vouch for that.
I was foolish enough to believe otherwise. In the Twitter thread, I accrued two bans in addition to getting the thread locked. What this taught me is that it doesn't matter one bit what my views are. All that matters is who is holding the "big stick". If you have the power to enforce your values, you don't need to debate.
In this context, the better move would be to buy VBForums and then I can enforce whatever values I want. I won't need to debate anyone. Now obviously I can't buy VBForums so my second best option is an echo chamber of similar values.
The point is that I've learned that debate solves nothing, power does.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
Wouldn't it be good if Trump used chatGPT to some good effect, such as correcting his grammar, making sure what he says actually means something, checking that the words he uses exist, ensuring that what he says is sensible thing to say for an intended President. ChatGPT might be of some real use here.
The first time it disagreed with him he would label it fake
On a global scale one President pulled out of the climate accord and the next put us back in. That affects the Caribbean.
It doesn't really matter if one president does one thing while another does something else. We still live by the whims of the "big dogs" of the world. All this stuff with climate change and whatnot isn't even a conversation here. Whatever "mandates" trickle down here from the decisions of the big powers of the world, we generally try to abide by them as best we can, even if we are getting screwed over and it's not because we believe in them, it's because we don't want American warships in our waters. No one really gives a lick about climate change here. We will do the bare minimum to not get chastised by "big daddy America".
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
It doesn't really matter if one president does one thing while another does something else. We still live by the whims of the "big dogs" of the world. All this stuff with climate change and whatnot isn't even a conversation here. Whatever "mandates" trickle down here from the decisions of the big powers of the world, we generally try to abide by them as best we can, even if we are getting screwed over and it's not because we believe in them, it's because we don't want American warships in our waters.
If you wound the clock back a couple hundreds years it was the same thing only different powers. England, France, Spain, Portugal. "Americans" didn't even have a wheel yet.
If you wound the clock back a couple hundreds years it was the same thing only different powers. England, France, Spain, Portugal. "Americans" didn't even have a wheel yet.
This is true. I just said something similar:-
Originally Posted by Niya
Don't get me wrong though, I don't blame them. Any powerful empire would do the same thing and perhaps America is the most benevolent dictator the world would ever see and if they didn't accept the role, someone far worse would no doubt have filled that void.
So yea, I agree that the world has always worked this way.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
All I'm saying is that I'm not under any illusions about how things really work.
That's your biggest delusion. You talk in stereotypes. There doesn't seem to be any knowledge, just opinion. Which is fine, if it's stated that way and not as fact.
You stated that Trump has the right to be upset because of all the bogus claims. I asked what information you had that proves the claims are bogus and your response was to just repeat the same claim then go on about you ideological views. Still no factual substance to support your statement. Just, they're bogus because I think the whole system is bogus. How is that even relevant? Are the laws to be ignored because you "think" the whole system is bogus. Or that the mythical "they" are controlling everything.
There is a big gap between us. I want to base my judgement on factual/evidentiary information and you want to pass off personal opinion as fact.
Proves the claims are bogus? What happened to "presumption of innocence until proven guilty" anyway?
I have no issue with that. The current investigations are in the process of deciding if a provable criminal act has taken place. But I haven't seen anything that points to a bogus investigation. That's why I asked what information was used to make that claim.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
Yeah, but you aren't the problem, we are. A large population multiplied by a very high consumption per person equals a problem.
True, but that doesn't mean they won't try to push their agendas here. Though I think climate change in particular is more of an WEF thing than an American thing. Still it's all the same, big dogs with big teeth making the rules.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
Speaking of which, I experienced something scary a few hours ago. I was watching a new video on GPT-4 and what people have been pushing it to do. I took some tips and got it to write an entire WPF application and it only got 3 minor things wrong! This was definitely far beyond GPT-3. By next year, us programmers would be obsolete.
Code:
Imports System.IO
Imports System.IO.Compression
Imports System.Threading
Public Class ZipUtility
Public Delegate Sub ProgressReportDelegate(currentFile As String, zippedBytes As Long, totalBytes As Long)
Public Delegate Sub TotalProgressReportDelegate(zippedBytes As Long, totalBytes As Long)
Public Class ZipUtilityBuilder
Private _files As String()
Private _progressReporter As ProgressReportDelegate
Private _totalProgressReporter As TotalProgressReportDelegate
Private _outputZipFile As String
Public Function WithFiles(files As String()) As ZipUtilityBuilder
_files = files
Return Me
End Function
Public Function WithProgressReporter(progressReporter As ProgressReportDelegate) As ZipUtilityBuilder
_progressReporter = progressReporter
Return Me
End Function
Public Function WithTotalProgressReporter(totalProgressReporter As TotalProgressReportDelegate) As ZipUtilityBuilder
_totalProgressReporter = totalProgressReporter
Return Me
End Function
Public Function WithOutputZipFile(outputZipFile As String) As ZipUtilityBuilder
_outputZipFile = outputZipFile
Return Me
End Function
Public Function Create() As ZipUtility
Return New ZipUtility(_files, _progressReporter, _totalProgressReporter, _outputZipFile)
End Function
End Class
Private _files As String()
Private _progressReporter As ProgressReportDelegate
Private _totalProgressReporter As TotalProgressReportDelegate
Private _outputZipFile As String
Private _cancellationTokenSource As CancellationTokenSource
Private Sub New(files As String(), progressReporter As ProgressReportDelegate, totalProgressReporter As TotalProgressReportDelegate, outputZipFile As String)
_files = files
_progressReporter = progressReporter
_totalProgressReporter = totalProgressReporter
_outputZipFile = outputZipFile
_cancellationTokenSource = New CancellationTokenSource()
End Sub
Public Async Function Begin() As Task
Using archive As New ZipArchive(File.OpenWrite(_outputZipFile), ZipArchiveMode.Create)
Dim totalBytes As Long = _files.Sum(Function(f) New FileInfo(f).Length)
Dim zippedBytes As Long = 0
For Each file As String In _files
_cancellationTokenSource.Token.ThrowIfCancellationRequested()
Dim fileInfo As New FileInfo(file)
Dim entry As ZipArchiveEntry = archive.CreateEntry(fileInfo.Name)
Dim curFileZippedBytes As Long = 0
Using entryStream As Stream = entry.Open()
Using fileStream As FileStream = fileInfo.OpenRead()
Dim buffer(4096) As Byte
Dim bytesRead As Integer = Await fileStream.ReadAsync(buffer, 0, buffer.Length)
While bytesRead
_cancellationTokenSource.Token.ThrowIfCancellationRequested()
curFileZippedBytes += bytesRead
Await entryStream.WriteAsync(buffer, 0, bytesRead)
zippedBytes += bytesRead
_progressReporter?.Invoke(file, curFileZippedBytes, fileInfo.Length)
_totalProgressReporter?.Invoke(zippedBytes, totalBytes)
bytesRead = Await fileStream.ReadAsync(buffer, 0, buffer.Length)
End While
End Using
End Using
Next
End Using
End Function
Public Sub Cancel()
_cancellationTokenSource.Cancel()
End Sub
End Class
Imports System.IO
Imports System.Windows.Threading
Imports Microsoft.Win32
Class MainWindow
Private Async Sub StartButton_Click(sender As Object, e As RoutedEventArgs)
Dim saveFileDialog As New SaveFileDialog With {
.Filter = "Zip Files (*.zip)|*.zip",
.DefaultExt = ".zip"
}
If saveFileDialog.ShowDialog() Then
Dim outputZipFile As String = saveFileDialog.FileName
Dim files As String() = FileListBox.Items.Cast(Of String).ToArray()
Dim zipUtility As ZipUtility = New ZipUtility.ZipUtilityBuilder().
WithFiles(files).
WithProgressReporter(AddressOf UpdateProgress).
WithTotalProgressReporter(AddressOf UpdateTotalProgress).
WithOutputZipFile(outputZipFile).
Create()
Try
Await zipUtility.Begin()
MessageBox.Show("Zip operation completed.")
Catch ex As OperationCanceledException
MessageBox.Show("Zip operation cancelled.")
End Try
End If
End Sub
Private Sub OpenButton_Click(sender As Object, e As RoutedEventArgs)
Dim openFileDialog As New OpenFileDialog With {
.Multiselect = True
}
If openFileDialog.ShowDialog() Then
For Each file As String In openFileDialog.FileNames
FileListBox.Items.Add(file)
Next
End If
End Sub
Private Sub UpdateProgress(currentFile As String, zippedBytes As Long, totalBytes As Long)
Dispatcher.Invoke(Sub()
ProgressLabel.Content = $"Progress: {currentFile}"
FileProgressBar.Value = (zippedBytes / totalBytes) * 100
End Sub)
End Sub
Private Sub UpdateTotalProgress(zippedBytes As Long, totalBytes As Long)
Dispatcher.Invoke(Sub()
TotalProgressLabel.Content = $"Total Progress:"
TotalProgressBar.Value = (zippedBytes / totalBytes) * 100
End Sub)
End Sub
End Class
That was written entirely by GPT-4 and I only had to make 3 very very minor corrections and only one of those things prevented it from compiling while the other two were minor bugs that even a human could make. This was the prompt that produced it:-
I want to write a VB.Net Zip utility that allows you to select files to compress in the Zip format. It will be a WPF application that targets the .Net Framework version 4.8.
The project should contain a class that is responsible for handling the zipping of files. It should be written using a the builder pattern written as a fluent interface. This fluent interface should consist of a method that takes an array of Strings that will be the names of files, another method that takes a delegate to report current the progress of the zipping operation. The delegate should be such that it will report the name of current file being zipped, the number of bytes already zipped for the current file, size of the current file. I also want another method on this fluent interface that takes a delegate which will report the total size in bytes of all the files being zipped as well as the number of bytes already zipped in total. I also want a method on the interface to specify the output zip file. The interface should have Create method to create the object with it's state set by the the various methods of the builder method calls. The Create should return this object but not execute the zipping process. The class should have a Begin method will tell the object returned by the Create method to begin the zipping process. This method should be awaitable. The class should also have a method for cancelling a zip operation.
The methods of the builder that take delegates, I want them to use defined delegates and not Action(Of T) type delegates. You will name these delegates appropiately based on what they are for.
Now when you're finished writing that class for me and I want you to inform me so that I may instruct you to proceed with writing the WPF UI interface for me.
For the UI, I want a simple WPF window with two buttons at the bottom. One button will be used to select files to zip, the other button will be to start a zip operation. The entire form from the top up to where the buttons reside at the botton will contain a list box that shows the full path of all the files we have selected so far.
When the open button is clicked, I want it to open an Open File dialog which allows me to select multiple files that will be listed in the list box. The start button will open a save file dialog which would allow me to specify the name and path of the output zip file. This dialog should have a default extension of ".zip". After we have selected a name and path for our zip file, I want our code to use the zip class we wrote earlier to perform the zip operation.
Now I have stated that the bottom of the window will host the two buttons. These buttons should be stacked horizontally with a margin of 5 pixels between them. They should also be left justified with a margin of 20 off the left edge of the window. To the right of the buttons I want a labels and progress bars that return information on the current state of the zip operation like the current file and the number of bytes zipped etc. The Zip class we wrote earlier would provide this information through delegates. I leave it to you to figure out exactly how to arrange the labels and progress bars.
Based on every thing I just said, I want you to write this program for me.
One of the major tip I got from the video is to "make it do, not think", which basically means be as detailed as possible so that it doesn't have to think too deeply about what you want. They said this was one of the keys to making it do amazing things.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
Will be interesting to see how quickly this grows as a professional programming tool. I don't think programmers will be obsolete by next year but it should make young programmers nervious about the future. It seems possible that being a programmer may turn into describing an app and let these types of tools write the code. For now, your still going to need programming skills to verify the code and fix any mistakes. Even if stops making mistakes it will take time before we have blind trust.
Will be interesting to see how quickly this grows as a professional programming tool. I don't think programmers will be obsolete by next year but it should make young programmers nervious about the future. It seems possible that being a programmer may turn into describing an app and let these types of tools write the code. For now, your still going to need programming skills to verify the code and fix any mistakes. Even if stops making mistakes it will take time before we have blind trust.
It is pretty amazing.
Here's the thing though, I've rigorously tested the programming capabilities of 3 different iterations of GPT and each successive iteration massively out-performed the capabilities of the previous iteration. From that I could extrapolate how fast AI is evolving and where it's likely going to be in the next year. It may be true today that you will need to be a programmer to use it effectively as you will have to correct it's mistakes but I doubt that will be the case next year. I would not be surprised next year if it stops making mistakes altogether. Eventually, it will get good enough to where even non-programmers would be able to get solid outputs from it.
I am telling you, AI is evolving rapidly and I do mean rapidly. I have never in my life seen anything like this. AI is making leaps and bounds in timescales that could be measured in months, not years or decades as is typical with technology.
[EDIT]
To add:
That program I made GPT-4 write, out of curiosity I also gave the same prompt to the previous GPT-3.5 iteration just to see how it would perform. It made a tonne of mistakes and did things I explicitly told it not to do. The code was somewhat usable but it was nowhere near what I asked for. GPT-4 only made 3 tiny errors and got me 99% of the way there. The difference between successive iterations of this AI is huge.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
Here's the thing though, I've rigorously tested the programming capabilities of 3 different iterations of GPT and each successive iteration massively out-performed the capabilities of the previous iteration. From that I could extrapolate how fast AI is evolving and where it's likely going to be in the next year. It may be true today that you will need to be a programmer to use it effectively as you will have to correct it's mistakes but I doubt that will be the case next year. I would not be surprised next year if it stops making mistakes altogether. Eventually, it will get good enough to where even non-programmers would be able to get solid outputs from it.
I am telling you, AI is evolving rapidly and I do mean rapidly. I have never in my life seen anything like this. AI is making leaps and bounds in timescales that could be measured in months, not years or decades as is typical with technology.
You may be right, we'll see.
But a lot of things make large leaps in the the beginning. Which makes sense because there are large areas for improvement. Fixing the last 10% can take longer than creating the first 90%.
Here's the thing though, I've rigorously tested the programming capabilities of 3 different iterations of GPT and each successive iteration massively out-performed the capabilities of the previous iteration. From that I could extrapolate how fast AI is evolving and where it's likely going to be in the next year. It may be true today that you will need to be a programmer to use it effectively as you will have to correct it's mistakes but I doubt that will be the case next year. I would not be surprised next year if it stops making mistakes altogether. Eventually, it will get good enough to where even non-programmers would be able to get solid outputs from it.
I am telling you, AI is evolving rapidly and I do mean rapidly. I have never in my life seen anything like this. AI is making leaps and bounds in timescales that could be measured in months, not years or decades as is typical with technology.
[EDIT]
To add:
That program I made GPT-4 write, out of curiosity I also gave the same prompt to the previous GPT-3.5 iteration just to see how it would perform. It made a tonne of mistakes and did things I explicitly told it not to do. The code was somewhat usable but it was nowhere near what I asked for. GPT-4 only made 3 tiny errors and got me 99% of the way there. The difference between successive iterations of this AI is huge.
But a lot of things make large leaps in the the beginning. Which makes sense because there are large areas for improvement. Fixing the last 10% can take longer than creating the first 90%.
This is generally true but I believe AI would be an exception and here's why. I believe that within 10 years AIs will become self-hosting, which is to say they will be able to figure out how to improve themselves and since they can outperform humans in cognitive abilities by order of magnitudes, we would see more rapid improvement, not less. AI is the only technology ever invented by the hand of man that has this potential. I don't think future AIs will have much trouble figuring out that 10% in a 1/100 of the time it would take a team of humans.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
While fiction, in "The Expanse" great swathes of humanity ended up unemployed and on the dole ("Basic Assistance").
That didn't mean that AI took over everything, just a lot of things, and seemed to be pretty darned ubiquitous. How else could it ever be safe to let children run around loose within a hollowed-out moon or asteroid?
But resentment seemed to be built into the cultures of the welfare class and the manual labor and working classes throughout the system. So much so that AI was never allowed to speak except in rare cases when directed to.
It wasn't stupid though. I'm reminded of the tiff Naomi Nagata had with the AI of the Rocinante:
Naomi: "You know I'm an engineer? Show me drive diagnostics and core levels."
Amos: "What's going on?"
Naomi: "Oh, I don't know, ask the ship, it seems to know everything."
Amos: "It sure beats the buckets that we've been on in the past."
Naomi: "There's nothing to fix."
For those who don't know the show, Naomi is used to being a useful part of a crew on older beat up space stations, freighter ships, and such held together and pushed beyond design parameters with baling wire and duct tape. The AI there was older, often broken or blind, and mainly devoted to the most critical operations needed to make things work.
For a while now I been wanted to write syntax highlighter to post code on the forums similarly to what Elroy does. You can see a sample of how he posts code here. Part of the process would require tokenizing the code to apply the tags. Now I have written tokenizers before but they are tedious as hell to write. Today I just had the brilliant idea of having GPT-4 take care of all that back breaking labor and boy did it really sell itself on usefulness. This is the latest iteration of the code:-
Code:
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Collections.Generic
'Everything is here was almost entirely by
'ChatGPT GPT-4
Public Class SyntaxHighlighter
Public Shared Function Apply(ByVal text As String) As String
Return WrapTokensWithColorTags(Tokenize(text))
End Function
Private Shared Function WrapTokensWithColorTags(tokens As String()) As String
Dim tokenColors As New Dictionary(Of String, String) From {
{"Keywords", "#A52A2A"},
{"Types", "#4B0082"},
{"SingleQuote", "#006400"},
{"DoubleQuote", "#8B4513"},
{"Numbers", "#FF0000"}
}
Dim keywords As New List(Of String)({"As", "For", "Next", "End", "Class",
"Structure", "Dim", "Private", "Public", "Friend",
"Sub", "Function", "Property", "If", "Else", "Implements",
"Inherits", "DirectCast", "CType", "Handles", "Ubound", "Lbound",
"Optional", "ByVal", "ByRef", "Each",
"Continue", "CDec", "CInt", "CLng",
"Cstr", "CBool", "Redim", "Preserve", "True", "False",
"Static", "Shared", "Overloads",
"Of", "From", "Try", "Catch", "Finally", "Do", "While", "When"})
Dim types As New List(Of String)({"Single", "Double", "String",
"Boolean", "Integer", "Long", "Short",
"Byte"})
Dim sb As New StringBuilder()
sb.Append("[CODE]")
sb.Append("[COLOR=""#000080""]")
For Each token As String In tokens
Dim color As String = ""
Dim tokenUpper As String = token.ToUpperInvariant()
Dim isNumber As Double
token = Regex.Replace(token, "code", "$0", RegexOptions.IgnoreCase)
token = Regex.Replace(token, "color", "$0", RegexOptions.IgnoreCase)
If keywords.Any(Function(k) k.ToUpperInvariant() = tokenUpper) Then
color = tokenColors("Keywords")
ElseIf types.Any(Function(t) t.ToUpperInvariant() = tokenUpper) Then
color = tokenColors("Types")
ElseIf token.StartsWith("'"c) Then
color = tokenColors("SingleQuote")
ElseIf token.StartsWith(""""c) Then
color = tokenColors("DoubleQuote")
ElseIf Double.TryParse(token, isNumber) Then
color = tokenColors("Numbers")
ElseIf token.StartsWith(vbLf) OrElse token.StartsWith(vbCr) OrElse token.StartsWith(" "c) Then
sb.Append(token)
Continue For
End If
If Not String.IsNullOrEmpty(color) Then
sb.AppendFormat("[COLOR=""{0}""]{1}[/COLOR]", color, token)
Else
sb.Append(token)
End If
Next
sb.Append("[/COLOR]")
sb.Append("[/CODE]")
Return sb.ToString()
End Function
Private Shared Function Tokenize(input As String) As String()
Dim tokens As New List(Of String)()
Dim token As New System.Text.StringBuilder()
Dim index As Integer = 0
While index < input.Length
Dim ch As Char = input(index)
If Char.IsWhiteSpace(ch) Then
AddTokenAndClear(tokens, token)
index = HandleWhiteSpace(input, index, tokens)
ElseIf ch = "'"c Then
AddTokenAndClear(tokens, token)
index = HandleSingleQuote(input, index, tokens)
ElseIf ch = """"c Then
AddTokenAndClear(tokens, token)
index = HandleDoubleQuote(input, index, tokens)
ElseIf IsAlphaNumeric(ch) OrElse ch = "_"c OrElse (ch = "."c AndAlso token.Length > 0 AndAlso Char.IsDigit(token(token.Length - 1))) Then
token.Append(ch)
index += 1
ElseIf IsSpecialCharacter(ch) Then
AddTokenAndClear(tokens, token)
tokens.Add(ch.ToString())
index += 1
ElseIf ch = vbCr OrElse ch = vbLf Then
AddTokenAndClear(tokens, token)
index = HandleNewLine(input, index, tokens)
Else
index += 1
End If
End While
AddTokenAndClear(tokens, token)
Return tokens.ToArray()
End Function
Private Shared Sub AddTokenAndClear(tokens As List(Of String), token As System.Text.StringBuilder)
If token.Length > 0 Then
tokens.Add(token.ToString())
token.Clear()
End If
End Sub
Private Shared Function HandleWhiteSpace(input As String, index As Integer, tokens As List(Of String)) As Integer
Dim ws As New System.Text.StringBuilder()
While index < input.Length AndAlso Char.IsWhiteSpace(input(index))
ws.Append(input(index))
index += 1
End While
tokens.Add(ws.ToString())
Return index
End Function
Private Shared Function HandleSingleQuote(input As String, index As Integer, tokens As List(Of String)) As Integer
Dim comment As New System.Text.StringBuilder()
comment.Append(input(index))
index += 1
While index < input.Length AndAlso Not (input(index) = vbCr OrElse input(index) = vbLf)
comment.Append(input(index))
index += 1
End While
tokens.Add(comment.ToString())
Return index
End Function
Private Shared Function HandleDoubleQuote(input As String, index As Integer, tokens As List(Of String)) As Integer
Dim quoted As New System.Text.StringBuilder()
quoted.Append(input(index))
index += 1
While index < input.Length
Dim ch As Char = input(index)
If ch = """"c Then
quoted.Append(ch)
index += 1
If index < input.Length AndAlso input(index) = """"c Then
quoted.Append(input(index))
index += 1
Else
Exit While
End If
Else
quoted.Append(ch)
index += 1
End If
End While
tokens.Add(quoted.ToString())
Return index
End Function
Private Shared Function HandleNewLine(input As String, index As Integer, tokens As List(Of String)) As Integer
If index + 1 < input.Length AndAlso input(index) = vbCr AndAlso input(index + 1) = vbLf Then
tokens.Add(vbCrLf)
index += 2
ElseIf input(index) = vbCr OrElse input(index) = vbLf Then
tokens.Add(input(index).ToString())
index += 1
End If
Return index
End Function
Private Shared Function IsAlphaNumeric(ch As Char) As Boolean
Return Char.IsLetterOrDigit(ch)
End Function
Private Shared Function IsSpecialCharacter(ch As Char) As Boolean
Return Not (IsAlphaNumeric(ch) OrElse Char.IsWhiteSpace(ch) OrElse ch = "_"c OrElse ch = "'"c OrElse ch = """"c OrElse ch = vbCr OrElse ch = vbLf)
End Function
End Class
As you can see by the syntax highlighting above, it works. Now this is not the first iteration. In fact, I spent a quite a bit of time tweaking it but here is the kicker, I almost never touched the code myself. My entire process was a cycle of taking the code ChatGPT spit out, testing it, asking it to make refinements and correct bugs, testing it again and repeating that over and over again.
What I found interesting about GPT-4 is that it never once made a syntax error. In fact, it made very few mistakes over all. There were some tiny bugs here and there but that was mostly due to me not being clear about what I wanted. My mind is so blown right now by how incredibly powerful this thing is. I really don't have the words. I mean just look at all that code. Nothing in that was written by me. The ONLY thing I did was add a few extra keywords to the List(Of String) and I wrote the Apply function. That's it! I did nothing else.
Here are the two queries I started with. One for the tokenizer:-
I want you to write a function that takes a String and tokenizes it in VB.Net. This function would take a String as input and return an array of Strings as output.
The tokenization process should consider each non-alpha numeric character as a single token.
It should consider whole numbers and mixed numbers like 12.5 as a single tokens.
It should consider any pair of carriage return and linefeed characters as a single token.
It should consider any consecutive series of whitespace characters as a single token of one or more whitespace characters.
It should consider any consecutive series of alphanumeric characters as a single token. The underscore character should also be considered and alpha-numeric character.
If any single quote character is encountered, the single quote and everything after it up to the first newline character would be considered a single token. The pair of carriage return and linefeed pair should not be included in this token.
If any double quote character is encountered, the double quote character and everything thing after it until the next lone double quote character is considered one token. Special care needs to be taken for pairs of double quotes that come after a lone double quote character. Pairs of double quote characters between single double quote characters are also just part of the token.
Here are some examples of tokenization to help you understand:
[Number = 10] = [Number][ ][=][ ][10]
[Dim My_Str As String = "Dog ""Cat"" Dog"] = [Dim][ ][My_Str][ ][As][ ]String[ ][=][ ]["Dog ""Cat"" Dog"]
[Math.Add(12.5,300)] = [Math][.][Add][(][12.5][,][300]
The string inside the braces on the left hand side of the equal sign represents the input and the contents between each pair of open and closing braces on the right hand side of the equal sign represents each token.
Here are a few notes about this:
Do not use Regex for this.
The function itself could be part of a class.
The class could contain helper functions.
Use helper functions to avoid nesting loops within loops. If it becomes necessary to embed a loop within a loop. The inner loop should be implemented as a helper function instead.
And the other for processing the tokens:-
I want you to write a function in VB.Net that takes an array of Strings that represent tokens, wrap then in tags, concatenate them and return the result.
The tags are colour tags. For example, lets say "Cat" is the token, it could become "Cat".
The colour of the tags depends on the token type. Here are the different token types:
Type tokens: Single, Double, String, Boolean, Integer, Long, Short, Byte
The keyword tokens should have the colour #A52A2A.
The operator tokens should have the colour #0000FF.
The type tokens should have the colour #4B0082.
Tokens that begin with a single quote should be coloured as #006400
Tokens that begin with a double quotes should be coloured as #8B4513
Tokens that begin with white space, carriage return or line feed should not be changed and concatenated as is.
Before returning the final concatenated String, it should itself be wrapped in a colour tag which has the effect of giving the whole text a default colour. That could should be #000080.
Those two queries got me like 80% of the way there. From there I kept asking it to refactor the code repeatedly until I got something I was satisfied with which was the actual code I posted above.
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
C++ programmers will dismiss you as a cretinous simpleton for your inability to keep track of pointers chained 6 levels deep and Java programmers will pillory you for buying into the evils of Microsoft. Meanwhile C# programmers will get paid just a little bit more than you for writing exactly the same code and VB6 programmers will continue to whitter on about "footprints". - FunkyDexter
There's just no reason to use garbage like InputBox. - jmcilhinney
The threads I start are Niya and Olaf free zones. No arguing about the benefits of VB6 over .NET here please. Happiness must reign. - yereverluvinuncleber
If you want to be sure of your professional future with VB6, crippling ChatGPT in this respect would be straightforward. Just start unplugging/DDOS all the VB6 websites around the world starting with this forum and very soon, with regard to VB6, all you might hear from chatGPT would be - "Daisy, daisy, give me yoooouur answerrrrr, dooooooo".
PS. I suppose those old VB6 resource websites are dropping off one by one in any case, causing, I hope, selective amnesia for AI.
By the power invested in me, all the threads I start are battle free zones - no arguing about the benefits of VB6 over .NET here please. Happiness must reign.