Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

‪Ya, graphic programming.‬

Name: Anonymous 2007-10-05 23:01

There's this scene in Lain where she's programming on a portable device with a stylus, just dragging and pointing and clicking to navigate and stuff.
I want such an programming environment. I want it to death.
So I'm wondering, how would a language for such a purpose look? They used LISP in the series, but while LISP syntax is very simple (good), I'm thinking you'd want a slightly less dynamic language, to allow the environment to do better definition lookup, autocompletion, etc. If you don't have a keyboard, you'll want to avoid typing as much as possible.

So, language suitable for making a kickass drag-and-drop, point-and-click code editor interface. Any existing out there? How would a new one look?

Name: Anonymous 2007-10-05 23:02

HIA(IM(A(LISP(PROGRAM))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

Name: Anonymous 2007-10-05 23:04

that sounds like something only lazy retarded faggots--the same kind who use gamemaker--would like

and lisp is simple because it can't do shit
it's a toy

Name: Anonymous 2007-10-05 23:16

visual basic?

Name: Anonymous 2007-10-05 23:30

10 PRINT"CLASSIC BASIC?"

Name: Anonymous 2007-10-06 0:11

Dragging stuff around is a ton slower than just typing or clicking it into existence.

Name: Anonymous 2007-10-06 1:16

There is one already. See >>4

I wrote a little flow diagrammer for Asm programming. Quite a lot easier than following jumps in toilet-paper code, and no efficiency loss whatsoever.

Name: Anonymous 2007-10-06 2:32

So no-one else saw Serial Experiments Lain and started salivating at that scene? Meh.

>>3
It also sounds like something people who'd like to program shit on their small portable device would like.

>>6
Not necessarily, if you do it with a stylus or your fingers. Almost definitely not if the device hasn't got a proper keyboard.

Name: Anonymous 2007-10-06 2:59

>>8
Just buy a fucking keyboard you sheepscate

Name: Anonymous 2007-10-06 3:46

Why the fuck would you want to use your stylus or finger?  Moving in space to something is slow, and accuracy gets worse the closer to real world you get.  Learn to man to machine interface, newfag.

Name: Anonymous 2007-10-06 5:10

>>8
So no-one else saw Serial Experiments Lain and started salivating at that scene? Meh.
On the contrary, Expert Programmers would see it and be anqered.

Name: Anonymous 2007-10-06 5:32

not everyone on 4chan likes/world4ch animu

Name: Anonymous 2007-10-06 8:05

drag and drop would work, if you got an AI, but then you could just tell her what to do

or you go hire programmers from india, thats probably cheaper than running an AI

Name: Anonymous 2007-10-06 8:26

But they're not as easy to rape

Name: Anonymous 2007-10-06 8:59

weeaboo

Name: Anonymous 2007-10-06 12:00

>>1
TRY LOGO

Name: Anonymous 2007-10-06 16:30

if you want game-making things try the Multimedia Fusion thing thing thing thing thing

Name: Anonymous 2007-10-06 18:41

I'm thinking you'd want a slightly less dynamic language, to allow the environment to do better definition lookup, autocompletion, etc.
Yeah, environments for highly dynamic languages like Smalltalk could never do that.

O wait...

Name: Anonymous 2007-10-06 20:00

>>18
Yeah, and Slime totally doesn't do autocompletion, definition lookup, automatic hints when you're using a function, or anything like that.

OP, moron, dynamic languages always provide those things.

Name: Anonymous 2007-10-06 23:38

flash

Name: Anonymous 2007-10-07 2:35

I think a drag and drop flow chart basic like style programming would be neat.

Name: Anonymous 2007-10-07 2:57

I just finished a beta for a hands free basic.
http://img266.imageshack.us/img266/1811/visualnw0.png

to bad I wont release it. ever.

Name: Anonymous 2007-10-07 3:08

>>22
But don't you use at least one hand to control the cursor? Anyway, the example in you screenshot looks very... uninspiring, to say the least. But oh well, kudos to you, Anon. Kudos.

Name: Anonymous 2007-10-07 3:32

>>22
GO BACK TO SCHOOL YOU FUCKING .... .... FUCK

Name: Anonymous 2007-10-07 8:46

>>7
>>22

http://img528.imageshack.us/img528/4369/fdfaw32oc8.png

No, this is not so any retard can make a program. It's for EXPERT ASM PROGRAMMERS wanting to OMG OPTIMIZE their control flow. And yes, that's a command line in the bottom right and it's designed to be used with a keyboard. No, I'm not going to release it... yet.

Name: Anonymous 2007-10-07 9:06

>>25
Written in?

Name: Anonymous 2007-10-07 9:13

>>26
java

Name: Anonymous 2007-10-07 9:17

>>25,27
not same person

Name: WWW.TEAMKORUPT.COM 2007-10-07 9:26

Name: WWW.TEAMKORUPT.COM 2007-10-07 9:26

Name: WWW.TEAMKORUPT.COM 2007-10-07 9:26

Name: WWW.TEAMKORUPT.COM 2007-10-07 9:27

Name: Anonymous 2007-10-07 9:30

Bullshit (often bowdlerized to BS), also Bullcrap, is a common English expletive. It can also be shortened to just "Bull".

Most commonly, it describes incorrect, misleading, false language and statements. Literally, it describes the feces of a bull. As with many expletives, it can be used as an interjection (or in many other parts of speech) and can carry a wide variety of meanings.

Bullshitting is usually when one makes statements that are false, or made-up. Usually people describe other people's action of making a lot of statements as bullshitting in arguments, when one is making up rules or making examples that are not anything to do with what they are discussing or when one is making statements by using examples that need different rules to be applied, so this person is bullshitting

As it contains the word "shit", the term is sometimes considered foul language, hence the use of the euphemistic abbreviations "bull" and "BS". Nonetheless, the term is prevalent in American English and, as with many words, the term is used in a variety of countries, some dating back to approximately the same era World War I. In British English, bollocks is a comparable expletive, although bullshit is now a commonly used expletive in British English also.

Name: Anonymous 2007-10-07 9:30

Bullshit (often bowdlerized to BS), also Bullcrap, is a common English expletive. It can also be shortened to just "Bull".

Most commonly, it describes incorrect, misleading, false language and statements. Literally, it describes the feces of a bull. As with many expletives, it can be used as an interjection (or in many other parts of speech) and can carry a wide variety of meanings.

Bullshitting is usually when one makes statements that are false, or made-up. Usually people describe other people's action of making a lot of statements as bullshitting in arguments, when one is making up rules or making examples that are not anything to do with what they are discussing or when one is making statements by using examples that need different rules to be applied, so this person is bullshitting

As it contains the word "shit", the term is sometimes considered foul language, hence the use of the euphemistic abbreviations "bull" and "BS". Nonetheless, the term is prevalent in American English and, as with many words, the term is used in a variety of countries, some dating back to approximately the same era World War I. In British English, bollocks is a comparable expletive, although bullshit is now a commonly used expletive in British English also.

Name: Anonymous 2007-10-07 9:30

Bullshit (often bowdlerized to BS), also Bullcrap, is a common English expletive. It can also be shortened to just "Bull".

Most commonly, it describes incorrect, misleading, false language and statements. Literally, it describes the feces of a bull. As with many expletives, it can be used as an interjection (or in many other parts of speech) and can carry a wide variety of meanings.

Bullshitting is usually when one makes statements that are false, or made-up. Usually people describe other people's action of making a lot of statements as bullshitting in arguments, when one is making up rules or making examples that are not anything to do with what they are discussing or when one is making statements by using examples that need different rules to be applied, so this person is bullshitting

As it contains the word "shit", the term is sometimes considered foul language, hence the use of the euphemistic abbreviations "bull" and "BS". Nonetheless, the term is prevalent in American English and, as with many words, the term is used in a variety of countries, some dating back to approximately the same era World War I. In British English, bollocks is a comparable expletive, although bullshit is now a commonly used expletive in British English also.

Name: Anonymous 2007-10-07 9:30

Bullshit (often bowdlerized to BS), also Bullcrap, is a common English expletive. It can also be shortened to just "Bull".

Most commonly, it describes incorrect, misleading, false language and statements. Literally, it describes the feces of a bull. As with many expletives, it can be used as an interjection (or in many other parts of speech) and can carry a wide variety of meanings.

Bullshitting is usually when one makes statements that are false, or made-up. Usually people describe other people's action of making a lot of statements as bullshitting in arguments, when one is making up rules or making examples that are not anything to do with what they are discussing or when one is making statements by using examples that need different rules to be applied, so this person is bullshitting

As it contains the word "shit", the term is sometimes considered foul language, hence the use of the euphemistic abbreviations "bull" and "BS". Nonetheless, the term is prevalent in American English and, as with many words, the term is used in a variety of countries, some dating back to approximately the same era World War I. In British English, bollocks is a comparable expletive, although bullshit is now a commonly used expletive in British English also.

Name: Anonymous 2007-10-07 9:30

Bullshit (often bowdlerized to BS), also Bullcrap, is a common English expletive. It can also be shortened to just "Bull".

Most commonly, it describes incorrect, misleading, false language and statements. Literally, it describes the feces of a bull. As with many expletives, it can be used as an interjection (or in many other parts of speech) and can carry a wide variety of meanings.

Bullshitting is usually when one makes statements that are false, or made-up. Usually people describe other people's action of making a lot of statements as bullshitting in arguments, when one is making up rules or making examples that are not anything to do with what they are discussing or when one is making statements by using examples that need different rules to be applied, so this person is bullshitting

As it contains the word "shit", the term is sometimes considered foul language, hence the use of the euphemistic abbreviations "bull" and "BS". Nonetheless, the term is prevalent in American English and, as with many words, the term is used in a variety of countries, some dating back to approximately the same era World War I. In British English, bollocks is a comparable expletive, although bullshit is now a commonly used expletive in British English also.

Name: Anonymous 2007-10-07 10:51

>>1
I'm very slowly (slowly because I haven't really got enough time for it..) working on a programming system that will use a visual interface (because, even though I could do it as a text based programming language, it would be fucking hard to work with, while I've been able to write algorithms graphically on paper with ease - therefore the editor should also be graphical, for now).
Basically, the aim is to remove the possibility of dependency based bugs from code by making the code ONLY deal with dependencies (and therefore making it impossible to miss one). It's kinda hard to explain. Maybe someday it'll be usable and you can see for yourself.

As for if people would actually use it.. probably not, but it's a fun toy to work on.

Name: Anonymous 2007-10-07 11:50

>>38 remove the possibility of dependency based bugs from code by making the code ONLY deal with dependencies
Since we both know that you're not producing anything before the rest of us forget about it, would you care to explain this more? You don't mean library dependencies, do you? Is this like the anti-FP that seeks to control side-effects by making them explicit?

Also: purely graphical programming is only worthwhile if you have just a small number of possible functions to call. In-scope variables could fit in a short list, but there's no way hundreds  of functions can be easily managed, even if you do sort them into sequence functions, string functions, setters, arithmetic, and so on. It would be cool to be able to write equations out in proper mathematical notation and translate them at compile time into a method for solving them.

Name: Anonymous 2007-10-07 11:58

Isn't the lego mindstorm robot graphically programed?

Name: Anonymous 2007-10-07 12:00

>>40
Yeah, and the programming environment sucks ass. Fortunately the Mindstorms platform is open.

Name: Anonymous 2007-10-07 12:36

>>39
You are correct: there is very very little chance of me producing anything meaningful in the near future, unfortunately.

Yes, I am not speaking of library dependencies, though ultimately that will need to be looked at sometime too.
I mean the dependencies between sections of code. Apparently (from reading various articles) one of the major sources of bugs is that when a piece of code is changed, the dependent pieces of code are not updated and a bug is introduced. This is the reason for encapsulation in OOP, for example.
When you look at code, you can see that each operation in an expression is a dependency of the next operation in the expression and that each expression is a dependency to the next expression in a statement and so on for functions/procedures, classes/objects, modules and whatever other abstractions you may use.

My little toy language works by specifyung that "X depends on Y" and "Y depends on Z" and so on, building up expressions, functions, objects and modules (in reality, each of these work in the same way - I simply call them functions for convenience).So you can build up functions from other functions (just as you do in other languages).
Because of the way this works, I guess it's a graphical "functional" programming language.

The language contains a single statement: Function X depends on function Y (where Y could be a list of functions). Thats it.

There would, of course, be a number of primitive functions (add, subtract, whatever) and all others would be built up of these.
The way the code is executed is that if a function has no dependencies (or it's dependencies have been met) then the function is evaluated. This may, in turn, meet another functions dependencies and the cycle continues.

Very very simple example:
integer a initialized to 10
integer b initialized to 20
integer c depends on addition1
addition operation addition1 depends on integers [a] and [b]

addition1 is evaluated because both of it's dependencies can be met. c can be set to 30 because it's dependency, addition1, has now been met.

It's a little more complicated than that, but thats more or less it.
While I don't really know if this does indeed eliminate dependency based bugs, it does have a certain charm to it, IMHO. Namely, that a language could be built up of a SINGLE statement and still be able to do everything. In reality more statements would exist, but they would sit around the single statement core.


PS: I wrote a class in Python which could evaluate code as described above. I know it works, what I don't know yet is how well - I wont know until the editor is complete - and I'm not quite decided what the "syntax" should be... real life is getting in the way :-/



RE: purely graphical programming is only worthwhile if...
That is true. My first approach was to create a textual programming language, but then I realised that it wastoo awkward and tedious to code in, yet using diagrams (on paper) to write an algorithm was quite easy (and converting the diagram to text code was also straightforward). this is why I chose to use a graphical language instead of a textual one.
I suppose that ultimately it would require both.. Perhaps with correctly designed keyboard shortcuts, I could eliminate the use of the mouse and have a hybrid graphical/textual language without too much tedium. I don't know..

One thing I was thinking of recently was to have each element of the graphical language annotated with a textual expression (for example, a mathematical formula), but I need to play with this idea some more.

All in all, even though I came up with this idea a year ago, it is still in extremely early stages. I don't see myself getting anywhere meaningful in the near future... :-(


Sorry for tl;dr post. Comments appreciated.

Name: Anonymous 2007-10-07 12:38

>>39,42
It would be much easier to exlain with diagrams, but I'm too lazy to draw any.

Name: Anonymous 2007-10-07 12:50

Continuing, in case anyone is actually interested, here is some python code as mentioned in >>42

Heres whats being done:

int   [i]a=0[/i] depends on [i]add[/i]
+     [i]add[/i] depends on [i]a, 1[/i]
!=    [i]neq[/i] depends on [i]add, 10[/i]
print [i]prn[/i] depends on [i]a[/i]


Heres the python code:

# Here are the dependencies built up out of Python objects.
f_int_a = func_int()
f_add = func_add(const=[1])
f_neq = func_noteq(const=[10])
f_prn = func_print()

f_int_a.add(f_prn)
f_int_a.add(f_add)
f_add.add(f_neq)
f_neq.add(f_int_a)

# By passing a value to 'a', we fulfill its dependency and start a chain reaction of function evaluation.
f_int_a(0)


The f_* functions are defined as:

def func_int (const=[]):
    def func (inputs):
        return inputs[0]
    return Function("int", func, 1, const)

def func_add (n=2, const=[]):
    def func (inputs):
        return reduce(lambda a, b: a + b, inputs)
    return Function("+", func, n, const)

def func_noteq (const=[]):
    def func (inputs):
        if inputs[0] != inputs[1]:
            return inputs[1]
        else:
            return None
    return Function("!=", func, 2, const)

def func_print ():
    def func (inputs):
        print inputs[0]
        return 1
    return Function("print", func, 1)


Where Function is a class which stores a list of dependencies and evaluates func when all dependencies are met.
It's parameters are: name, function to evaluate, number of dependencies and constants (constants being pre-evaluated dependencies).

Running the code outputs 0 through 9 to the console (one number per line). So far, this isn't exactly useful or anything, but serves as a proof of concept.


If anyone wants the code for Function, let me know and I'll clean it up a bit and post. Otherwise, I won't bother.

Name: Anonymous 2007-10-07 14:33

an actual discution? in MY /PROG/?!?!

Name: Anonymous 2007-10-07 15:19

>>45
rare, i know

Name: Anonymous 2007-10-07 15:53

>>45
It's about as likely as you think!

Name: Anonymous 2007-10-07 16:55

>>32
lol cant even enter a url right...

Name: Anonymous 2007-10-07 17:22

>>44
It's like the critical path analysis of programming. You should think about using this dependency information to prioritize calculations.

Name: Anonymous 2007-10-07 21:11

>>27
lol no
>>26
C for Win32 API calls, Assembly for the main layout engine (this used to be a DOS program)

Name: Anonymous 2007-10-07 21:35

>>49
Actually, thats a very good idea.

I was thinking that, ultimately, I could use the graph of dependent operations for more than simply generating code (or interpreting it directly, which would be good for RAD and debugging). Graph analysis may be useful for profiling, optimization and other useful tools.
Another note is that to compile it do machine code directly seems to be a little out of my ability right now, but compiling to a stack based intermediary language would work. Initially I'll simply execute that in a VM, but ideally I'd like to perform pattern analysis on this to further optimize code and then use the processed code to generate machine code (or gcc intermediary code allowing gcc to further optimize and generate executables for a number of platforms).

Like, it has potential - I just haven't found enough time and motivation to get it all working :-(

Name: Anonymous 2007-10-07 22:06

>>51
The thing is that goto is ``considered harmful'' among highlevel languages, but is quite natural for something based on flow diagramming. Get used to it.

Name: Anonymous 2007-10-07 22:08

>>52
Computed goto as a language primitive.

Name: Anonymous 2007-10-08 5:12

why don't you install puredata and become an experimental media artist?

Name: Anonymous 2007-10-08 6:16

>>52
What has goto got to do with anything?

Ignoring the fact that it was a troll, just got to say that I have no use for goto's. Though, technically, everything could be seen as a perform-operation-and-goto.

Name: Anonymous 2007-10-08 6:16

>>54
I might actually do that. Simply because the wikipedia screenshot looks crazy ;-)

Name: Anonymous 2007-10-08 6:18

That scene from Lain FUQIN ANGERED me.

>>1
I want such an programming environment. I want it to death.
Loser

while LISP syntax is very simple (good), I'm thinking you'd want a slightly less dynamic language
More loser

OKAY YOU FUQIN ANGERED... etc.

Name: Anonymous 2007-10-08 12:32

>>1
Heres a graphical language for you, can you see the graphics:
(begin (display "Hello, World") (newline))

Name: Anonymous 2009-03-06 7:09

The FUTURE I SURVIVE   ON A DIET   OF DIOXIN AND!

Name: Anonymous 2011-02-03 7:36


Don't change these.
Name: Email:
Entire Thread Thread List