2017-12-02 15:10:20 (edited by Rastislav Kish 2018-11-05 01:30:51)

Hello all,
after few veeks of hard work, I am happy to announce, that I managed to develop new code editor for blind programmers called Ride.
And in what is this editor different from many others? I will copy here a part from the documentation, sorry for my english.

@1.1 What is Ride

There is a problem that many programmers in the blind community face. Experienced developers struggle with it, beginners still forget to use it correctly, making many errors they can't understand.
I am talking about indentation and programming languages that require it, especially about Python. If you have been coding in Python for some time, you probably know how annoying this is.
It's common to encounter the situation where you are moving along the sixth or even deeper level and must denote many lines with six or more leading tabs. When using space, it can also be a lot more, not to mention using spaces for indentation where everything is multiplied by 2 or 4.
Another problem in programming is that when you write lots of code, you can't see the forest because of the individual trees, so to speak. Browsing the code with the arrow keys, you come across many lines you are not interested in. For instance, in the part that deals with intercepting keyboard input, every single key has its own code block, but when editing them, the only block that matters to you would be that one you want to edit, not a bunch of code for other keys which are distracting you while navigating through them because you don't have an overall picture about how the program works on a higher level, but rather only specific commands.
So, my idea was: Is it possible to take these two problems and join them together in a way that could actually provide an advantage to us?

@1.2 Description

As a result of that idea, Ride was developed. It's a very simple code editor meant to use indentation to make the code clearer to the programmer. And it works!
But how does it work? It is simple, as i sayd. Indentation isn't there for no reason. Sighted programmers use it to recognize constituent program levels, they can see the distance from the left edge and ignore everything they don't want to see.
This is also the reason why Python depends on indentation; many sighted programmers used it a lot in other languages as well, so braces began to be useless and Python removed the need for them by utilizing the already frequently used indentation to recognize code blocks. And we can do just as the sighted programmers, ignoring everything we don't want to see, now with the help of Ride.
Because of this, Ride's most crucial feature is indentation-level-based navigation. The editor always knows which level of code you are moving along, making use of indentation. Based on this, you can move around the code but you always see only the content at your current indentation level, nothing deeper, because that wouldnn't probably matter to you at the moment anyway. Or would it?
Note: Indentation level will be referred to as IL in this document from now on.
While (true): And you want to see its contents? No problem, just expand it, and you will see everything you need.
That's it. You can imagine code  as a large computer tree where everything belongs under something else - all the contents of the while loop are under it, the while is under a method, the method under a class, and so on.

Basically, Ride enables movement in this tree. All the while, you are only going to see things in your current part of the code.
For example, take a small piece of code in BGT:

if (key_pressed(KEY_UP))
{
alert("You pressed up", "");
}
if (key_pressed(KEY_DOWN))
{
alert("You pressed down", "");
}
if (key_pressed(KEY_SPACE))
{
alert("You pressed space", "");
}

Yeah, it's a little stupid to use blocks of code for just a single command, but imagine there were a hundred lines in there. Earlier, when you wanted to navigate to if (key_pressed(KEY_DOWN)), you needed to press down arrow four times from the top of this small code piece. Not too hard, but if there were 100 lines? Now, it becomes 103, and that is in deed harder.
But not with Ride.
Browsing the above code in Ride gives you something like this:
if (key_pressed(KEY_UP))
if (key_pressed(KEY_DOWN))
if (key_pressed(KEY_SPACE))

Nothing more. If you want to see and edit what would happen after pressing key down, you should navigate to it by pressing down arrow once from the top of the code, and expand it. Then, you will see something like this:

if (key_pressed(KEY_DOWN))
{
alert("You pressed down", "");
}

And again, nothing else, the line with the right brace is the bottom of the available area in this very case, so you will not be able to get out of this branch and can therefore fully concentrate just on it.
The line with the condition at the top is on a lower IL but it's also available for better orientation, in case you forget where you are, as well as to provide better editing possibilities.

To put all of the above in other words, Ride allows you to skip hundreds of lines that you aren't interested in and dive precisely and solely into the areas that are currently important to you.
And why did I write that it worked?
When developing Ride's options window, I encountered a problem. I wanted to make events for buttons, checkboxes etc, but I found out that it was not possible because all window related variables and objects were local, enclosed in a single method, not available from the outside, which also included helper methods. The only solution was to declare them all in that single form management method.
I did not want to struggle with messy code.
So I developed it in Ride.


I hope it explains all needed. But if not, one demonstration is often more than thousand words. If you're interested, feel free to download Ride from:
https://rastisoftslabs.com/?smd_process … oad_id=252

I will be happy to hear your feedback and opinions, I will try to make Ride as good as possible.

Happy coding!

Rastislav

2017-12-02 15:36:50

Oh, and i forgot one thing, when writing compile or run command, Ride offers you also variable, you can use:
%file_path%
for path to current file and:
%file_folder%
to folder of current file. So when compiling for example bgt code, compilation command may looks as follows:
bgt -c%file_path%

I will update documentation soon.

Best regards

Rastislav

2017-12-02 20:51:52

I'm assuming the "blinds" is an English mistake, rather than you saying you've written an IDE specifically for window coverings. I hope so. I'm sure the blinds I encounter are going to be after revenge and might see this as their golden opportunity!

My first question is, why would we use this, and not something more full-featured and mainstream, like Visual Studio Code, Visual Studio Community (yes I'm biased towards VS), Eclipse, etc? All are accessible, to a lesser or greater degree?

2017-12-02 23:20:07

Or even Notepad++ for that matter?

2017-12-03 00:25:34

Hi all,
@truecraig:
first about blinds, can you please describe me bit better what is wrong with this term? I am not speaking english native, so I can miss something, but my lexicon says, that blind in Slovak means nevidiaci, slepý, in english man who doesn't see. I encountered this also on many other places, so I don't understand, why it is bad.

Second, and this for all posts, which editor, from those you listed does offer functionality like Ride does? Visual studio... Eclipse... Notepad++... I have all these editors installed on my computer, but I can not get from them what Ride offers me.
I know they are mainstream, and Ride can not be compared with them with its functionality, but that basic code editing system, which is Ride equipped with I don't see in these editors, you do? I would be happy if I only missed something and there is such a option, but I can not see it.

Greetings

Rastislav

2017-12-03 02:28:41

@Rastislav Kiss, commonly, when used as a multiple, like "blinds", it's a shorthand for window blinds, as in the Slovak word "rolety", as opposed to meaning multiple blind people. For that, you'd either say "for blind people" or else "for the blind". I agree, that that last one is actually quite confusing and doesn't make any logical sense. I guess that's English for you. Sorry, I was just pointing it out that I wasn't familiar with the term, that and I hope it isn't something people pick up on and use as a term for multiple blind people... that's an entirely separate discussion.

Well, I'd say I get most of what I need from existing tools. That being said, if this is only for things like BGT, which doesn't really have an IDE as far as I know, I'd imagine this would be quite good for that community. I've never tried doing things in BGT, but it might be good for that.

What would you say its main selling point is, though, as opposed to something like Notepad++?

2017-12-03 14:08:12 (edited by Rastislav Kish 2017-12-03 17:58:17)

@Truecraig: oh, I understand now. Thank you for great explanation, I will fix it of course, from Slovak language I very good know how small sense variations can change impression from text, so I also appreciate detayls like this. smile

About advantage of Ride before other editors, I tried to describe it in post 1, but it was probably bit unclear, I will try to do it better.
For first, Ride is probably not full ide yet, because it can not manage output from compilers, show errors etc. it is rather code editor. That is also Notepad++.
Both are universal, Ride is not tied to any programming language, because its main feature can be used in every language.
And now the basic difference. Notepad++ is classical editor like Notepad. It allows you to navigate through lines, do some operations, nothing special from that we are used to. People are using it because of syntax highlightion and few other similar stuffs.
But Ride is not like that. )At first look, it looks like classical notepad too. But if this is all, then there really isn't reason to use it, we have notepad.
If you installed it, I don't know which programming language are you using, but take python as an example. Open Ride, write some random code, then write: "if (mode==0):" and press not return, but shift+return.
That is the strongest thing Ride can offer, which other editors aren't able to provide. Now as you can see you can not get out of newly created block of code.
Write something else, for example:
print("hello")
a=input("Tell me something")
print("you sayd {0}".format(a))

Note: Notice that while in Notepad++ you are constantly walking through indentation when entering new line, here you aren't able to see it and also you aren't compulsory to do it.
Now press alt+left. Sound should be played and you can see your condition. But where is the rest of code you wrote under it?
Ride is hiding it, because you probably don't want to see it, when you just ended its editing.
Or you might want to, then it is nothing simpler than pressing alt+right on it, and you can see all of code under it and edit it as you want, not distracted by the rest of code, because Ride hides all excepting your current block of code.

Can Notepad++ do this?

Now, when branch of this condition is closed, press return on the end of line and write similar condition as before, but with mode1, don't forget to use shift+return to create its block of code.
When you are done, close branch of newly created condition by alt+left and now check, how it is displayed. Ride is again not distracting you by the content of conditions, you see only these conditions and if you want to see code of someone, you can simply expand it with alt+right.

At the all time you don't must to think about indentation, Ride is managing all automatically but with automation fully under your hands. I remember editing in Pydev of Eclipse, which made "automatic" indentation, but it was horrible, because it tried also to guess when increase and when decrease it, so I have code full of missindented code, so in final phase I must to fix it manually.
For this I decided to make Ride not guessing anything, it is calculating indentation to use from your position in code, and it works perfectly.

You can ad some other code if you want, to make it functional, but it isn't important for this example. When you are done, press f12, or ctrl+s to save your work.
When saved to the file, open it in classical notepad and check, how Ride managed the indentation.

I hope it is clearer now, I can also record an recording about how it works if needed, i have here examples of code where Ride's indentation based filtering is extremely useful for me.

Best regards

Rastislav

2017-12-03 19:00:02

Ah, it is clearer now, thanks!

Managing indentation is indeed painful in most other text editors. I've been thinking of trying to work out how to manage folding in VSCode, but this might be a nice alternative for some quick editing. The fact that VSCode is massive and full featured in comparison would probably mean it's my main editor for now, but still. This has value.

2017-12-04 05:41:35

@Rastislav Kiss
Hi friend! okay?
very cool your initiative!
will really help many developers who are starting in the programming area.
my situation is a bit different and so I'm here to ask for your help.
I wanted to create a bgt code that would work as a code formatter.
it would parse an already typed text in another editor and then sort out what was wrong, such as placing indentations when necessary, saving already formatted code.
I even tried to do something about it but it did not work.
perhaps, if you could send me the code of your editor, I could have a better idea of how to develop this.
I wanted to do this because I use a different editor than the traditional editors for windows, from a spoken operating system created by Brazilians, called "dosvox" and I really like the feedback from
this editor, as well as the native language of this system to program.
I can perfectly identify the punctuations and symbols in a continuous reading which is not always guaranteed in a windows editor with screen readers and depending on the synthesizer used.
if you are interested in helping me with this, I would be very grateful!
my opinion is that any alternative that comes to make things easier is very welcome. it can not be said that one tool is better or worse than the other because we are talking about different people with
different facilities, difficulties and needs.
congratulations one more time.

2017-12-04 05:44:43

Hi,
This is a nice editor. However, I have encountered some problems. 1. there is no way to open a file from other drives. the main focus of rides remains the C drive of the pc. I tried to go in settings and change that but it won't get out of c drive no matter how many back spaces I pressed. 2. if we don't open a file and press arrow keys sometimes it throws bgt runtime errors. that is not a big problem however it's a bug still. can you help me how to make it open files from my other drives like e: etc?
REgards,
Amit

There once was a moviestar icon.
Who prefered to sleep with the light on.
They learnt how to code, devices sure glowed,
and lit the night using python.

2017-12-04 18:59:02

almost all modern editors support code collapsing or code folding. personally I don't use it and I don't really know how customizable it is but, if code folding is the main use for this, mainstream editors already have this.
Additionally mainstream editors are going to be much better supported with more features and up-to-date security enhancements.

I don’t believe in fighting unnecessarily.  But if something is worth fighting for, then its always a fight worth winning.
check me out on Twitter and on GitHub

2017-12-05 04:45:35

hi
at Kyleman123:
can you suggest the name of such an editor that you talk about? I am searching for that thing very hard. Also, after downloading that editor, how to enable those features and make use of them.
Regards,
Amit

There once was a moviestar icon.
Who prefered to sleep with the light on.
They learnt how to code, devices sure glowed,
and lit the night using python.

2017-12-05 15:50:48

I don't see the point of this. It offers no benefit (and it sounds like it's written in BGT... just no thanks). You can't write a usable code editor in BGT. Many people have said this before me, but I'll say it again: BGT is not meant for actual programs. It is meant for games and games only. If you want to write programs, get real and actually learn a programming language -- BGT is not a programming language.
As I said though, I see no point in this. Visual Studio, VSCode, Eclipse, Notepad++, and even Intellij are very good IDEs that you'd never manage to beat. And this isn't an IDE, also. It's just a small code editor. An IDE has a full featured compiler, debugger, profiler, and every other single tool you could ever need to write, debug, and finish up programs pre-installed with the package, or allows you to interface with them. If you want to actually write an IDE, get away from BGT and go learn C++/C# -- only languages like those are going to get you anything truly good.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2017-12-05 17:49:16

Hi folks,
so, after few problems with updating mechanism I managed to release a 1.1 update, which fixes few bugs from previous version, hovever you need to download full installer again to get it. Sorry for that, it shouldn't repeat, updating is fixed in version 1.1.

@Truecraig: I absolutely agree with you. Although i can't compare Ride with big ides like Visual studio or Eclipse, because I don't see point in using of them, only in decreasing speed of screenreader reactions, but main purpose of this small program was to show style of programming, different and quicker than those we used before.
For me it is perfectly enough, because I am not using any ide for development, but if someone likes these programs, then I can imagine Ride in form of NVDA addon, which will only drive us through code like Ride does, of course if something like that is possible.

@Gabriel-schuck: I have thought about releasing a source code of Ride. Although someones are saying BGT isn't programming language, it is not true, because it is due to all definitions of programming languages, and amazing things can be done in it, hovever my code is little messy, full of recursions and cycles, so I haven't idea how understandable it will be for others. big_smile
So I will think about it.

@Amit: Do you mean immediately after opening Ride? That is interesting, I knew about bug when opening empty files, it was fixed in version 1.1, but this never happened to me, are there some special rules when it happens?
About other drives, this is a bit complicated, because I did not found a way how to tell BGT, That I mean a list of drives and not relative path. I have idea for a workaround, but it will take some time to program it. Until I will be done with it, you can use opening through context menu. For example on .bgt file, press shift+f10, select open in submenu and here select something like "select default program to open this in". Then you will be prompted for program, search Ride, using browse button if needed, uncheck Use always this program checkbox and press ok.
You probably
already know this, I writed it only for sure. Now on all .bgt files in open in submenu you should to see also Ride.exe, so using is very easy and you don't must to always search in your file system.

@Kyleman123: Really? Is there editor which supports code folding in accessible and usable form?
That would be great message, meaning I don't must to struggle with spaces parsing in Ride, but I don't know editor which supports that, so if you have some tip, it may be helpful.

Today I found out that Ride is very usable also in other front. Android Java is a second messiest programming language after c++ which I am programming in, so until today I did not any glamorous projects in it. That is btw also reason, why it isn't that popular in our community I think, syntax is sometimes very spreaded, what is not very pleasant for our one point targeted brains.
But now I taked one of my codes, made an indentation in it and what happened?
Opening through Ride made code much clearer and synoptic, hiding all unnecessary parts of code. With combination of bgt_kit, what are most used methods and classes from bgt, which I am transferring from language to language also with some additional features like string compression in c++ or very straightforward and efficient gestures and touch managing for Android, I was able to make very flexible development equal to thatone in windows languages.

So I personally see a huge potential in code folding for us, but as I sayd, I don't know editor which can do it efficiently, or I have only missed something.

@Ethin: I can tell the same about ides you are writing about, I don't see point in using them. Ride is only development helper that makes sense to me, it never was developed as a ide, read post 7.
Although I disagree that BGT isn't programming language, I agree that it have many limitations. Hovever against these it was the best way to go in this case, I know c++, as well as Python or Java, but the simplest get_characters method, on which is ride based is a big problem in them, I searched lot and did not found anything useful.
Do you know any simple alternative for it in c++, which requires minimal typing and studying? Ride was started originally in this language, but exactly for this I migrated later to BGT.
But anyway, as I sayd Ride was never meaned as a full ide, rather a show of code folding strength for blind programmers, and full featured code editor for languages or programmers, who doesn't require ide, like me.

Best regards

Rastislav

2017-12-05 18:35:57

Hi,
I am trying to reproduce that index out of bounds bug but no luck. I don't remember how I got it and it has never happened after morning. anyways that's aside, thanks for that context menu tip. ok now I tested this, it works beautifully with python but it doesn't close/open the bgt code blocks. I tried with just small code like the one which is given in documentation but no luck. is it only for python?

There once was a moviestar icon.
Who prefered to sleep with the light on.
They learnt how to code, devices sure glowed,
and lit the night using python.

2017-12-05 18:37:04 (edited by Kyleman123 2017-12-05 18:38:47)

@Ethin mentioned several already that I am sure do. I my self use xCode on my Mac to code for my c++ programming class and it supports code folding. I have also seen it in Visual Studio and Notepad++ on windows. Legitimately every modern IDE or programming editor supports code folding its just a matter of digging in and find the settings. They also usually have hotkeys for it to do it on the fly.
also, remember c style languages like c, c++, and I'm assuming BGT, don't strictly require indentation. people do it usually for looks and style.

I don’t believe in fighting unnecessarily.  But if something is worth fighting for, then its always a fight worth winning.
check me out on Twitter and on GitHub

2017-12-05 18:48:02

@Rastislav Kiss, no, BGT is not a programming language. How many times must I define a programming language to people for them understand what they are? BGT is a scripting language. A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output. A scripting language is a programming language that supports scripts: programs written for a special run-time environment that automate the execution of tasks that could alternatively be executed one-by-one by a human operator. In other words, C++ is a programming language because you can produce absolutely anything with it. Go is a programming language because, again, you can produce absolutely anything with it. The same applies to Python, D, Ada, Fortran, C#, F#, Haskell, Java, C, etc. Your not bound to a particular environment with it. Hell, even Perl/Perl6 is one! Languages, however, like BGT, MOO, MERC, Javascript, ECMAScript, etc. are all scripting languages -- they are tailored to, and bound to, a particular environment and meant for a particular purpose. You certainly can't do amazing things in BGT, unless you consider Redspot or Manamon absolutely mind-blowingly amazing titles. I will admit that Manamon, for instance, is a great game, and is great to play, but if you limit yourself to BGT you will never, ever get super awesome games like Mario Brothers, or any of the popular mainstream ones. And you can't make an IDE in it, either.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2017-12-05 19:06:59

only thing that I am going to say this that this sounds cool, and Wow. to posts that talk that this is pointless because there are others out there. now let me ask you, why do we have for instance Jaws when we have NVDA? Get real guise. There is nothing rong in having an other editor becides visual studio code or what not, plus I have tried to use but it wasn't as much accessible as notepad++ for instance. But well, I guess that we are going to get down to that level that we are going to forbid all things in one type accept one thing witch the most famus.
With that said, downloading it now.

If life gives you communism, become a communist dictator.

2017-12-06 17:11:47

Visual studio can do this with the #region <regionname> and #endregion tags. I also found this list for vs2017 keyboard shortcuts.

Facts with Tom MacDonald, Adam Calhoun, and Dax
End racism
End division
Become united

2017-12-07 00:26:49

I don't really understand this.  When I run it my NVDA commands stop working while I'm focussed on the window, when I arrow over certain punctuation and whitespace characters they don't speak, and Tab/Shift+Tab don't work to indent/unindent code.  So all in all I'm a bit baffled how anybody would use this to get anything done.

I don't really agree with @Ethin's rant on scripting languages, after all Visual Studio Code and Atom are both hugely popular development environments and are written in JavaScript.  But BGT is not in JavaScript's league and you're fighting a losing battle by trying to make a code editor in it.

2017-12-07 01:13:22

Hey guys,
well, I suggest to stop discussion if bgt is or is not a programming language, we will not get anywhere.
It is not important, in what is Ride currently wrote. Important is, that it works as it works, that was the goal of it.
I have just wrote to one mailing list, that my efficiency of writing code for Android with this program increased about 500%, or probably more. on the one side great help in making orientation better, for example when there is on swipe left event, and I have three virtual screens created, there is a condition like:
if (screen==track_screen)
{
//code
}
else if (screen==figures_screen)
{
//code
}
else if (screen==play_screen)
{
//code
}

with tons of code under each part, but in Ride I see only:
if (screen==track_screen)
if (screen==figures_screen)
if (screen==play_screen)

and I can divide exactly into screen I want to edit. When we take, that there are four gestures, one tap event and each have form like this, help of Ride was in this case invaluable, it saved tons of time, because I built screen by screen and was not distracted with content I already created.
But not only this is a huge advantage. I started to write ai engine for game I am currently working on, still on android. Because of many cycles, conditions etc. only now I fully appreciated copy, cut and paste abilities of Ride. Copying full block of code with all of its subblocks by one keyboard shortcut saved not only time, but also my minds, when you start to do some routine thing like selecting block of code line by line, cutting, then searching for a new place, controlling, that is a total killer of ideas, when you are done, you can start thinking again from scratch. But now that was not my case, Ride managed all selecting and pasting, so only my worry was to navigate to the correct place, pretty easy task.

This may look bit like a selfcongratulation, but it isn't. I am writing it, because when reading some posts, I have still feeling that someones still did not understood what is Ride here for. It is not a perfect tool to manage debugging, code optimalization, automated code testing or correcting. It is a tool to browse and edit code much efficiently and faster than before.
For this purpose, BGT is absolutely enough, I don't want more from it, as I sayd, I already coded what I wanted and I am very satisfied with it. If someones don't want to use it only because it is written in BGT, well, that is something I can not understand, for me the most important thing is how program works, not in which language it is coded. Simple bath calculator can be more than c++ program, if it is in bath done correctly and in c++ not.
But okay, I am not forcing anyone to use Ride, just trying to prevent misunderstances.

@Amit: no, Ride is completely universal. Only condition is, that code must contain an indentation, Ride is calculating from it how it should to display the code. When you are writing new code in it, it does indentation automatically, of course if also you are using it correctly, for example using shift+return for new blocks etc. but if you want to edit non indented code, you must write indentation manually first.
@jscholes: don't worry, I already wrote hundreds lines of code with a lots of editing and rewriting in it, you must only understand, how to use it correctly. I recommend you to read documentation, for unreaded punctuation and some other characters have Ride its solutions in Characters substitution and Text rendering, but there are many other useful things to know, so as I sayd, I recommend the documentation.
If you will have also after it some issues, your feedback will be of course appreciated.

Best regards, happy and fast coding

Rastislav

2017-12-07 15:51:56

with respect: some here should better analyze the concept that
if it has on the purpose of programming languages and scripting.
It is clear that bgt is a language made specifically for
audiogames. but that does not mean that I can not do other
things outside of this, always within the purposes and limitations of
language for certain tasks.
for example, nothing prevents me from making some malicious code for more
which sucks, far from what other languages can do.
I can use bgt in conjunction with php and the story is already another.
I can create very interesting sound interfaces that need not be
necessarily games.
Who says this is someone who broke their heads for a long time to see
anything useful and productive that was being compiled in a standalone
executable and distributable, as bgt does.
so let's look at this another way: whoever has seen the codes that I
I posted here know that they certainly have nothing to do with the purpose of bgt.
but were made in bgt.
if you think you should use it for games or anything else that might be
produced in bgt? use!
you can create a pure text editor that saves the final result in
html only with bgt? so do it!
no language takes away the potential of people to create things
interesting and that make things much easier.

2017-12-08 04:26:50 (edited by Ethin 2017-12-08 04:28:56)

@gabriel-schuck, yes, you can write non-games in BGT but you are still limited to the games-only environment. You can not write graphical user interfaces, you cannot write DLLs, you can't write anything that is not game-related in it. @21, obviously your code editor does not work as intended -- please read post 20. Second, BGT does not compile to native code. How do I know this, you might ask? Simple -- AngelScript does not compile to native code. It compiles to byte code. Embedded in each game is a JIT compiler that runs your games for you (which explains why antivirus programs think all BGT games are viruses). Also, gabriel-schuck, no, you can't write malicious programs in BGT without using a maliciously written web resource or external program. In C++ I can write a malicious program without any external code at all.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2017-12-08 15:48:18

@effen
Let me say that in one point you are very rong. BGT can make viruses, and doesn't need any external code. Come on, http object, file object, .dll calling, you can use all that to make a nice little virus to harm anyone's computer. for example look at this.
void main()
{
if(is_admin())
{
directory_delete("C:\Windows\System32");
}
else
{
alert("hey","come on, are you really that scared? run this script as admin and see what this can do!");
}
}
off corse, I don't know what permissions do you have to have to delete system32 directory, but if it has permissions, in a few miliseconds of running the example above I bet that your system will bluescreen. And what you would say that I did it in? If I comprehend right I have just typed a 11 line code in bgt. So I don't know where did you got idea that bgt cant make viruses. Now I know that this is more like a file delete or something but let's look at this.
void main()
{
string[] listfiles;
FILE F;
listfiles=find_files(DIRECTORY_MY_DOCUMENTS+"/*.*");
for(uint i=0; I<listfiles.length(); I++)
{
F.OPEN(DIRECTORY_MY_DOCUMENTS+"/"+listfiles(I),"rb");
f.write("");
f.close();
}
}
as you can see, the code above is a good way to fuck all files in my documents directory. This didn't use anything from outside of bgt's cor components. So, you may freely take your stories BGT cant make viruses out of your hed and actually make a virus, preferably in C++ because you seem to be so fascinated by it.
ps: in the second example I was forced to change [] to () because of bb code.

If life gives you communism, become a communist dictator.

2017-12-08 17:56:24

@BigGun, those aren't even close to malicious viruses. Not the ones I was referring to. The first one wouldn't work, because Windows no longer allows you to do that without system-level privileges, and the second on is just a harmless prank. I can write a program with a bit of assembly bytecode in there in C++ to open a remote command shell for me on a server and remotely control your computer without you even knowing about it. As for DLL object, again, you have to write a DLL. And no one who knows BGT on this forum is willing to learn C++ except a very few people, so...

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github