for all who remember me, I was a poster here before, but largely went away after my efforts diverged from having much of anything to do with scheme (I forget, possibly I was not getting along that well with the people around here).
now I am possibly returning to all this way, or at least partly. this is largely a re-introductory post. others may focus more on the specifics.
so, a history: starting sometime around 4-6 years ago, I had implemented a scheme variant (some ways it differed from the spec, but a lot of code ran ok). eventually, the thing became a complicated and infexible mess, so the effort was laid to rest.
at about this point, I implemented a new language, borrowing a lot of ideas from javascript and self, but still maintaining a lot of functional features. some things were gained, some things were lost. this time, the vm's implementation was very loose. it would integrate well enough with c code, but generated unmanagable levels of garbage, and many features could not be adequately re-implemented due to the highly ad-hoc nature of the implementation.
eventually, I started to question dynamic typing altogether, and went down the path of trying to design and implement a language that would have about all of this, but be a statically typed class/instance language. several attempts, all quickly became unmanagably complex and died.
more recently, I had came up with the idea of trying again, but working clean. I would make a new memory manager and type system, and would keep everything centralized. I then decided on using precise gc, ref counting, and tagged references.
something done away with was dom-trees. xml has some coolness, but also some major limitations (awkward to work with, ...).
the first thought was using s-expressions internally. the thought became a multi-stage compilation process. in the first stage, data is parsed and ran though a first-stage compiler, which would compile to a lisp-like language, which would then be processed by a second stage compiler and made into the bytecode.
I figured I would implement the lower level first, and use an s-expression parser to test it out.
after implementation had began, the thought changed. most of my original reasons for wanting static typing had largely faded away (most operations on data are fairly cheap, and reference counting will make the garbage problem a lot more managable).
the though became: how about for the lower language and vm, I make them dynamic.
followed by: making the surface level language static (and doing all the static typesystem heavy lifting) didn't make a lot of sense.
the thought became that I make the lower language more or less a scheme variant (not exactly, but "close").
the upper language will just be a modified form of my last language. this part will be fairly thin, a lot closer to being a plain parser.
the syntax will be in a style vaguely similar to that of javascript (as was the case in my last lang). note that, unlike javascript, it makes a little less distinction between statements and expressions.
in the old lang, I could type: var x={1, 2, 3}; which would generate an array of 3 numbers and bind them to x. this time, I will make it be a list by default, and probably give arrays the syntax #{...} instead.
likewise I would type something like: function fact(x)if(x>2)fact(x-1)+fact(x-2) else 1; and: t=fun(x)fun(y)x; f=fun(x)fun(y)y; c_if=fun(c)fun(t)fun(f)c(t)(f);
this time, I may make both keywords optional, allowing one to write: fact(x)if(x>2)fact(x-1)+fact(x-2) else 1; and: t=(x)(y)x; f=(x)(y)y; c_if=(c)(t)(f)c(t)(f);
> the upper language will just be a modified form of my last language. this > part will be fairly thin, a lot closer to being a plain parser.
what's the motivation for writing your own language? it seems pretty pointless to go through all that work to realize you could have just used scheme as your "lower" language and defined your own abstractions to solve the particular problem.
this all sounds suspect - like you're doing this all because of syntax preference, and not really focusing on whether the language features are solving the particular problem.
> the syntax will be in a style vaguely similar to that of javascript (as was > the case in my last lang). note that, unlike javascript, it makes a little > less distinction between statements and expressions. > in the old lang, I could type: > var x={1, 2, 3}; > which would generate an array of 3 numbers and bind them to x. this time, I > will make it be a list by default, and probably give arrays the syntax > #{...} instead.
case in point.
> this time, I may make both keywords optional, allowing one to write: > fact(x)if(x>2)fact(x-1)+fact(x-2) else 1; > and: > t=(x)(y)x; > f=(x)(y)y; > c_if=(c)(t)(f)c(t)(f);
that's hideous, imho.
-- : alan a. fay : empty...@gehennom.net : www.gehennom.net/~emptyset : : embrace all robots : because you can : because you should : 0xF0 :
> <bdf04$448c4575$ca83abe2$7...@saipan.com> >> the upper language will just be a modified form of my last language. this >> part will be fairly thin, a lot closer to being a plain parser.
> what's the motivation for writing your own language? it seems pretty > pointless to go through all that work to realize you could have just > used scheme as your "lower" language and defined your own abstractions > to solve the particular problem.
partly it is that I am a hobbyist who likes using only my own code...
possible examples here: my inflate/deflate code was written by me, along with things like png load/save code, a jpeg loader, ... all of which could have been sanely enough handled by common libraries (zlib, libpng, libjpeg, ...). at least, if one writes it one can understand it, along with ideas related to it.
I also have a full read/write archive format/library (uses deflate, and compresses competatively with zip), for which I intend to use for the the persistent store. note: I did my own file format, as zip is designed in a way unsuitible for read/write (likewise for nearly every other archive format, is mounting an archive as a read/write virtual filesystem such a novel concept or something?...).
around 5 or 6 years ago, for some projects I had used guile and scm, and that caused enough unpleasantness as to convince me to write my own scheme implementation.
but, yes, scheme will be (more or less) the lower language anyways.
as noted, the reasons I stopped using scheme were: after 2 years, I still couldn't stop being dissatisfied with the syntax; I just couldn't handle maintaining my old vm (which had become very inflexible, and had a few "unfixable" problems, particularly notable here was the inability of the interpreted and compiled variants to share toplevel environments, nor were they even strictly compatible at the source level).
> this all sounds suspect - like you're doing this all because of syntax > preference, and not really focusing on whether the language features are > solving the particular problem.
well, one problem is I don't have a particular problem...
or more like, the general problem is that I keep doing lots of stuff, and the combination of nicety, efficiency, and capability has been an ongoing problem.
my last lang had enough nicety (most of the time) but efficiency and capability left something to be desired.
partly though you are right, syntax preference is a big part of it.
another issue though is that I have gained some dislike for use of lexical scoping as the toplevel (largely for semantic reasons). so, my recent languages have often not done this.
instead, I use object scoping here (using lexical scoping elsewhere, eg, within function bodies and similar).
otherwise, yes, mostly syntactic...
>> the syntax will be in a style vaguely similar to that of javascript (as >> was >> the case in my last lang). note that, unlike javascript, it makes a >> little >> less distinction between statements and expressions. >> in the old lang, I could type: >> var x={1, 2, 3}; >> which would generate an array of 3 numbers and bind them to x. this time, >> I >> will make it be a list by default, and probably give arrays the syntax >> #{...} instead.
> case in point.
well, I am not saying you are wrong.
personally I do feel that use of s-expressions as the front end syntax, with only minor attempts at syntactic nicety, is a notable problem with scheme as it stands (albeit, not for functionality, but more for nicety...).
of particular note is the awkwardness of typing non-trivial mathematical expressions, given the general awkwardness of typing any mathematical expressions.
I also like doing all my editing in notepad, and s-exps are known for being bad for this (nice indentation is an art in itself, and it is annoying to count parens, forcing people to use editors like emacs and similar...).
>> this time, I may make both keywords optional, allowing one to write: >> fact(x)if(x>2)fact(x-1)+fact(x-2) else 1; >> and: >> t=(x)(y)x; >> f=(x)(y)y; >> c_if=(c)(t)(f)c(t)(f);
> that's hideous, imho.
well, I like this style, and it is not required that anyone else go along.
note that I had meant 'fib', but typed 'fact'. (define (fib x) (if (> x 2) (+ (fib (- x 1)) (fib (- x 2))) 1))
fact(x) if(x>1)x*fact(x-1) else 1; (define (fact x) (if (> x 1) (* x (fact (- x 1))) 1))
translated to scheme, the last 3 would become: (define t (lambda (x) (lambda (y) x))) (define f (lambda (x) (lambda (y) y))) (define c_if (lambda (c) (lambda (t) (lambda (f) ((c t) f)))))
which is clearly much less terse, and imo much more "hideous" than the above.
for everything else, the use of the language is likely to be fairly well imperative, and I make a lot of use of oo approaches, for which I feel that a c-like style does better (and the code looks a lot more mundane...).
> I also like doing all my editing in notepad, and s-exps are known for being > bad for this (nice indentation is an art in itself, and it is annoying to > count parens, forcing people to use editors like emacs and similar...).
Personally I cannot see this as a defensible concern in a modern technological environment, and in particular, an open source environment. I can understand not liking emacs. But insisting that the editor be "completely dumb," and have no parentheses matching feature at all, doesn't make sense in most programming environments I can think of. Possibly in some crufty embedded systems programming where the editor must always be written from scratch for every project? In any tools environment where previous work can be retained, and in particular open source environments, insisting on the universality of Notepad makes *NO* sense at all.
If you had what the industry calls a "driving problem," something that you actually need to accomplish, it would separate the wheat from this kind of chafe.
>> I also like doing all my editing in notepad, and s-exps are known for >> being >> bad for this (nice indentation is an art in itself, and it is annoying to >> count parens, forcing people to use editors like emacs and similar...).
> Personally I cannot see this as a defensible concern in a modern > technological environment, and in particular, an open source > environment. I can understand not liking emacs. But insisting that > the editor be "completely dumb," and have no parentheses matching > feature at all, doesn't make sense in most programming environments I > can think of. Possibly in some crufty embedded systems programming > where the editor must always be written from scratch for every project? > In any tools environment where previous work can be retained, and in > particular open source environments, insisting on the universality of > Notepad makes *NO* sense at all.
I use notepad and I like notepad... I don't like the expectation of any more advanced editor being required.
most langs are fine in notepad, but some are not.
> If you had what the industry calls a "driving problem," something that > you actually need to accomplish, it would separate the wheat from this > kind of chafe.
maybe.
then again, mostly I would probably be using it for more 3d modeling/animating type stuff (note: for this kind of thing, good math stuff is important...).
cr88192 wrote: > in the old lang, I could type: > var x={1, 2, 3}; > which would generate an array of 3 numbers and bind them to x. this time, I > will make it be a list by default, and probably give arrays the syntax > #{...} instead.
> likewise I would type something like: > function fact(x)if(x>2)fact(x-1)+fact(x-2) else 1; > and: > t=fun(x)fun(y)x; > f=fun(x)fun(y)y; > c_if=fun(c)fun(t)fun(f)c(t)(f);
> this time, I may make both keywords optional, allowing one to write: > fact(x)if(x>2)fact(x-1)+fact(x-2) else 1; > and: > t=(x)(y)x; > f=(x)(y)y; > c_if=(c)(t)(f)c(t)(f);
1. What's this have to do with Scheme?
2. Why haven't you gotten a blog yet instead of posting this kind of stuff to Usenet, as you've been asked over and over again?
-- Erik Max Francis && m...@alcyone.com && http://www.alcyone.com/max/ San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis Let me not seem to have lived in vain. -- (last words of Tycho Brahe)
scheme will be implemented and used as the lower level (it is a 2 level system). it will effectively replace the xml/dom stuff I was using the last time around...
I will probably make it accessible as well, probably via a different file extension... most likely, it will be a subset though...
> 2. Why haven't you gotten a blog yet instead of posting this kind of stuff > to Usenet, as you've been asked over and over again?
well, in these cases, no one talks to me, and I lose point. I think I remember now why I stopped posting here, so I may stop again...
cr88192 wrote: > I will probably make it accessible as well, probably via a different file > extension... > most likely, it will be a subset though...
If you ever finish it enough to release it. Which, given your history so far in the game programming newsgroups, doesn't seem too likely.
> well, in these cases, no one talks to me, and I lose point. > I think I remember now why I stopped posting here, so I may stop again...
That's because newsgroups are not your personal diary. If you want one of those, get one -- start a blog or something. I'm sure you'd find some people interested enough in what you have to say to subscribe, and setting up a blog these days is damn near trivial. But subjecting the rest of us to it simply because you're lonely is not particularly friendly.
-- Erik Max Francis && m...@alcyone.com && http://www.alcyone.com/max/ San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis I want to know God's thought; the rest are details. -- Albert Einstein
> That's because newsgroups are not your personal diary. If you want one > of those, get one -- start a blog or something. I'm sure you'd find > some people interested enough in what you have to say to subscribe, and > setting up a blog these days is damn near trivial. But subjecting the > rest of us to it simply because you're lonely is not particularly friendly.
Hey Erik, why don't you try being less strident for a change and lay off. It's not your personal bitch session either. Nobody's twisting your arm to make you read cr8's posts. You're well acquainted with a killfile; use it if cr8 makes life so unpleasant for you. Or just do what the rest of us do. Which is pick and choose the points we respond to, or decline to read things entirely if we're not interested in them. There is some Scheme stuff scattered in what he says, it's not like he's posting about the moonshot or something. Even if he was, gads, get a life.
cr88192 wrote: > "Brandon J. Van Every" <SeaFuncS...@gmail.com> wrote in message
> > In any tools environment where previous work can be retained, and in > > particular open source environments, insisting on the universality of > > Notepad makes *NO* sense at all.
> I use notepad and I like notepad... > I don't like the expectation of any more advanced editor being required.
> most langs are fine in notepad, but some are not.
Schemers tend to believe that a simple parentheses-only syntax buys you something. What it buys you, is worth beefing up your editor for. It is a tradeoff between human processability and computational processability, favoring the latter. And really, I have yet to understand why people find parentheses so friggin' difficult to deal with. They're not that tough to read with the naked eye, really. Not if you indent 'em like C code when necessary.
Yeah I had a paren matching mistake the other day. I solved it by clicking on parens in XEmacs Fundamental mode until the correct text was highlighted. Think I've also done the same thing in Visual Studio and it's not even a Scheme / Lisp editor. Only recently have I installed Quack to get a proper Scheme mode, and I haven't really taken advantage of it any way yet (cuz most of what I do is still CMake support). It gives me nice text highlighting, but it was slowing things down... but then I realized I hadn't byte compiled it, and I did so... and now it dies. Oh well. Wonder if it's a XEmacs vs. GNU Emacs schism. The author doesn't like XEmacs....
I couldn't help but add my $0.02 in italics to that wikipedia entry. One reason for NIH: no incentive to do otherwise. Like, people who are getting paid to promote and aggrandize themselves by having their own projects. You don't get ahead by wiping other people's hinnies, usually. Usually, if you're at the top of the heap, spewing the code that other people have to fix, you're in the most powerful position.
cr8 has a variation on "no incentive to do otherwise." He has no long-term driving problem. He codes for short-term satisfaction. He's prolific; his version of "short term" is a lot more code than most people could generate. But there's no long term architectonic plan in anything he does. He isn't serious about trying to "get somewhere." I don't know what life change will make him become serious about it. I do know that people change when they want to change, and not before. There is also the possibility that some people are highly productive coders but not good visionaries, and will not / cannot ever be otherwise.
I have the opposite problem. I have very firm long-term goals, like, take over the game industry with Chicken Scheme, and ship a kickass 4X TBS game. These require bazillions of short-term steps which are hard for me to get through because I'm not some uber-coder. I do plod through them methodically, to the degree my finances allow, but progress is slow. For instance I've been hammering the Chicken Scheme CMake build into shape for 9 months now. The more "progress" I make on it, the more I feel like I'm opening up new cans of worms. I wonder when I'm going to reach a point of stability with it. This is like a variation on "The Uncanny Valley": the closer I get, the farther away it is.
> >> I also like doing all my editing in notepad, and s-exps are known for > >> being > >> bad for this (nice indentation is an art in itself, and it is annoying to > >> count parens, forcing people to use editors like emacs and similar...).
> > Personally I cannot see this as a defensible concern in a modern > > technological environment, and in particular, an open source > > environment. I can understand not liking emacs. But insisting that > > the editor be "completely dumb," and have no parentheses matching > > feature at all, doesn't make sense in most programming environments I > > can think of. Possibly in some crufty embedded systems programming > > where the editor must always be written from scratch for every project? > > In any tools environment where previous work can be retained, and in > > particular open source environments, insisting on the universality of > > Notepad makes *NO* sense at all.
> I use notepad and I like notepad... > I don't like the expectation of any more advanced editor being required.
> most langs are fine in notepad, but some are not.
Most languages are editable in notepad, but few are fine.
Next time you have some time try writing your own editor rather than your own language. Implement things like folding, cursor placement registers and regexp replace. Then if you write a good one you'll find maintaining your code much easier.
> cr88192 wrote: >> "Brandon J. Van Every" <SeaFuncS...@gmail.com> wrote in message
>> > In any tools environment where previous work can be retained, and in >> > particular open source environments, insisting on the universality of >> > Notepad makes *NO* sense at all.
>> I use notepad and I like notepad... >> I don't like the expectation of any more advanced editor being required.
>> most langs are fine in notepad, but some are not.
> Schemers tend to believe that a simple parentheses-only syntax buys you > something. What it buys you, is worth beefing up your editor for. It > is a tradeoff between human processability and computational > processability, favoring the latter. And really, I have yet to > understand why people find parentheses so friggin' difficult to deal > with. They're not that tough to read with the naked eye, really. Not > if you indent 'em like C code when necessary.
well, it is not that it is that hard anyways, just that it is not mainstream style, and more so, is not so nice for math expressions...
my personal suspicion is that most "mainstream" developers are likely to reject languages with oddball syntax without even putting in the time to really investigate them.
then again, I am likely to be the only person to use my stuff, so my preferences are the main point...
> Yeah I had a paren matching mistake the other day. I solved it by > clicking on parens in XEmacs Fundamental mode until the correct text > was highlighted. Think I've also done the same thing in Visual Studio > and it's not even a Scheme / Lisp editor. Only recently have I > installed Quack to get a proper Scheme mode, and I haven't really taken > advantage of it any way yet (cuz most of what I do is still CMake > support). It gives me nice text highlighting, but it was slowing > things down... but then I realized I hadn't byte compiled it, and I did > so... and now it dies. Oh well. Wonder if it's a XEmacs vs. GNU Emacs > schism. The author doesn't like XEmacs....
I had used a windows port of xemacs before from what I remember.
>> >> I also like doing all my editing in notepad, and s-exps are known for >> >> being >> >> bad for this (nice indentation is an art in itself, and it is annoying >> >> to >> >> count parens, forcing people to use editors like emacs and >> >> similar...).
>> > Personally I cannot see this as a defensible concern in a modern >> > technological environment, and in particular, an open source >> > environment. I can understand not liking emacs. But insisting that >> > the editor be "completely dumb," and have no parentheses matching >> > feature at all, doesn't make sense in most programming environments I >> > can think of. Possibly in some crufty embedded systems programming >> > where the editor must always be written from scratch for every project? >> > In any tools environment where previous work can be retained, and in >> > particular open source environments, insisting on the universality of >> > Notepad makes *NO* sense at all.
>> I use notepad and I like notepad... >> I don't like the expectation of any more advanced editor being required.
>> most langs are fine in notepad, but some are not.
> Most languages are editable in notepad, but few are fine.
depends.
c typically does pretty well with notepad, and mostly I am a c-head. c just can't do everything though, but neither can many of the related languages for that matter either.
sometimes, one needs a language that can be dynamically recompiled or allows convinient introspection of data, ...
> Next time you have some time try writing your own editor rather than > your own language. Implement things like folding, cursor placement > registers and regexp replace. Then if you write a good one you'll find > maintaining your code much easier.
the power of notepad is that it represents a good baseline for what can be expected from an editor. personally, I don't need much.
likewise, my preference is to use either mingw or cygwin (which one depends on the project, for graphical apps I prefer mingw, but for simpler command-line apps cygwin is often better).
no need for fancy pointy clicky interfaces to compilers.
you know, if I used other peoples' code, there would be a lot less for me to do, and that wouldn't be good...
I also am not very creative, so if I am not redoing something it seems, I get stuck, and if I get stuck then I am not doing any coding.
from what I can remember, this will be about my 8th or so language implementation I think (it is fuzzy though, for my first lang I rewrote the vm about 4 or 5 times, and 2 of those 8 listed were never usably implemented). one of these was a half-assed attempt at implementing a c99 compiler (but for bytecode instead of assembler or machine code), but this was never finished.
3 of those listed were for specialized purposes: 2 for csg tasks, 1 as a replacement for windows calculator and use of guile as a calculator, and also had graphing abilities (sometimes useful, eg, when windows calculator just wont do, and is imo a lot nicer to type that scheme in guile, as the syntax was designed for convinient typing...).
otherwise, there was a physics lib (but, worse than ode), a skeletal animation tool (works well enough, frees me from having to use milkshape), a 3d engine, lots of data compression efforts, ...
when projects get too large they are awkward to work with, so spinning off to smaller projects makes sense.
but, yeah, implementing a new language gives something to do, and could give something useful for all I know...
> sometimes, one needs a language that can be dynamically recompiled or allows > convinient introspection of data, ...
> > Next time you have some time try writing your own editor rather than > > your own language. Implement things like folding, cursor placement > > registers and regexp replace. Then if you write a good one you'll find > > maintaining your code much easier.
> the power of notepad is that it represents a good baseline for what can be > expected from an editor. personally, I don't need much.
I don't need anything more than notepad either. But that doesn't mean I use notepad. The point I'm making is that editing is like programming itself, it is about convience rather than need. To program you only need assembly language.
Try allowing yourself more and I expect it will pay. Even in terms of improve the maintainability of your programs. In this an editor with regexp replace is especially useful because it allows you to easily rename variables. An editor that keeps track of indentation is also very useful when moving sections of code between functions.
> likewise, my preference is to use either mingw or cygwin (which one depends > on the project, for graphical apps I prefer mingw, but for simpler > command-line apps cygwin is often better).
Yes, I use those on MS Windows too.
> no need for fancy pointy clicky interfaces to compilers.
No. Cleverness in the interface to the compiler is much less useful than cleverness in an editor or language.
>> I will probably make it accessible as well, probably via a different file >> extension... >> most likely, it will be a subset though...
> If you ever finish it enough to release it. Which, given your history so > far in the game programming newsgroups, doesn't seem too likely.
"release"...
releasing anything non-trivial is a problematic, even then, they are just dumped to a website, and little else happens afaik...
that is a good point I have found in splitting up my efforts into smaller projects.
if I do the lang as a standalone project, it might, say, fall into the 25kloc or less category, so I might just put it online (this is a rough guesstimate).
my 200kloc beast hasn't been uploaded in a long time though, as it just takes so long to upload. my recent previous few langs (except my calculator lang, which was standalone) have generally depended on this codebase.
also, I figured maybe there was some value in starting clean. a general absence of old code floating around and constraining the implementation.
>> well, in these cases, no one talks to me, and I lose point. >> I think I remember now why I stopped posting here, so I may stop again...
> That's because newsgroups are not your personal diary. If you want one of > those, get one -- start a blog or something. I'm sure you'd find some > people interested enough in what you have to say to subscribe, and setting > up a blog these days is damn near trivial. But subjecting the rest of us > to it simply because you're lonely is not particularly friendly.
usually I like email, but not many people have been emailing me recently.
it is also unsettling that because of classes and other misc things, my coding speed has been slow. I have implemented the "core" and a lot of the vm/interpreter now, but pretty much none of the compiler or the new main parser as of yet.
the low levels of coding tend to cause a kind of coding withdrawl, which is at least partly helped by talking about stuff, assuming I have anyone to talk to.
females would be cool, but the last female I talked to I last saw (irl) a little over a week ago, and last got email from a little over 2 weeks ago. female is not available though...
I had some dude I could talk to, but I have not heard anything for probably about 6 weeks.
one of the main people I talk to has not written anything in the past 10 days.
irl, I have talked to some dude some, but he knows nothing really about programming (dude is older, specialty is theology and natural linguistics, and there is not much time to talk).
this leaves usenet...
also I figure maybe people have some cool ideas.
cool ideas are cool, giving something interesting to implement and mess with (but, there needs to be at least some possible use I guess...).
> cr88192 wrote: >> "Rob Thorpe" <robert.tho...@antenova.com> wrote in message >> news:1150116295.315031.172530@i40g2000cwc.googlegroups.com... >> > cr88192 wrote: >> >> "Brandon J. Van Every" <SeaFuncS...@gmail.com> wrote in message >> >> news:1150098100.614172.82520@y43g2000cwc.googlegroups.com... > <snip> >> c typically does pretty well with notepad, and mostly I am a c-head. c >> just >> can't do everything though, but neither can many of the related languages >> for that matter either.
>> sometimes, one needs a language that can be dynamically recompiled or >> allows >> convinient introspection of data, ...
>> > Next time you have some time try writing your own editor rather than >> > your own language. Implement things like folding, cursor placement >> > registers and regexp replace. Then if you write a good one you'll find >> > maintaining your code much easier.
>> the power of notepad is that it represents a good baseline for what can >> be >> expected from an editor. personally, I don't need much.
> I don't need anything more than notepad either. But that doesn't mean > I use notepad. > The point I'm making is that editing is like programming itself, it is > about convience rather than need. To program you only need assembly > language.
yes. problem is asm is not very portable, so one can only really use c...
> Try allowing yourself more and I expect it will pay. Even in terms of > improve the maintainability of your programs. In this an editor with > regexp replace is especially useful because it allows you to easily > rename variables. An editor that keeps track of indentation is also > very useful when moving sections of code between functions.
yeah.
usually for anything I might need to rename (functions, globals, ...) I usually stick to a 3-part naming convention: <lib>_<section>_<name> or: <major>_<minor>_<name>
<major>_<minor>_<name>_<sub> ...
this allows a simpler search/replace feature to work. there is also sed.
actually, I name my directories sort of like this as well...
misc (self written) compressor projects: bgb.proj.misc2 //data compressors bgb.proj.misc2_1 //image compressors bgb.proj.misc2_2 //funky algos testing bgb.proj.misc2_3 //audio codecs and similar (misc) bgb.proj.misc2_31 //more audio codecs (lossy linear and polynomial filters). bgb.proj.misc2_4 //archivers (mostly)
or, more major efforts: bgb.proj.bgbscr1 //this effort bgb.proj.pdsys21 //main project codebase
...
bgb.misc.music //where I keep my mp3s
...
>> likewise, my preference is to use either mingw or cygwin (which one >> depends >> on the project, for graphical apps I prefer mingw, but for simpler >> command-line apps cygwin is often better).
> Yes, I use those on MS Windows too.
ok.
stuck with windows, at least for now.
>> no need for fancy pointy clicky interfaces to compilers.
> No. Cleverness in the interface to the compiler is much less useful > than cleverness in an editor or language.
yes, ok.
in my case, I designed the syntax for my own preferences. note that I like using mostly c, so what I like in c I will use, but what I don't I will vary from.
anymore, statements are largely a convention (the line was blurred a lot in the last implementation, and may be more so now if I implement some things I was imaginging).
I really do like scheme's list behavior and core semantics, and may support this kind of thing better after the rewrite, as I will this time be using real lists (vs arrays as before), and there will likely be a lot less abstraction between some aspects of the syntax and the parse trees.
cr88192 wrote: > usually I like email, but not many people have been emailing me recently. > females would be cool, but the last female I talked to I last saw (irl) a > little over a week ago, and last got email from a little over 2 weeks ago. > female is not available though...
> I had some dude I could talk to, but I have not heard anything for probably > about 6 weeks.
> one of the main people I talk to has not written anything in the past 10 > days. > this leaves usenet...
Attempting to use Usenet as your primary means of socialization is not exactly healthy. You're making my point for me.
-- Erik Max Francis && m...@alcyone.com && http://www.alcyone.com/max/ San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis Whoever contends with the great sheds his own blood. -- Sa'di
> You're well acquainted with a > killfile; use it if cr8 makes life so unpleasant for you. Or just do > what the rest of us do. Which is pick and choose the points we respond > to, or decline to read things entirely if we're not interested in them.
This coming from the guy who's claimed to have killfiled me multiple times.
> There is some Scheme stuff scattered in what he says, it's not like > he's posting about the moonshot or something. Even if he was, gads, > get a life.
He's the one talking about having no friends and that's why he has to post his diary-like entries to random Usenet newsgroups, and I'm the one who has no life?
-- Erik Max Francis && m...@alcyone.com && http://www.alcyone.com/max/ San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis Whoever contends with the great sheds his own blood. -- Sa'di
> my personal suspicion is that most "mainstream" developers are likely to > reject languages with oddball syntax without even putting in the time to > really investigate them.
Syntax is not the reason that people switch languages. People switch languages because they are shown compelling applications.
Example: Ruby. Ruby by itself is in the same equivalence class as Python or Perl. If someone moves from C++ to Ruby, it may happen as a matter of historical accident - what they ran into first, who they knew, why they cared, etc. But Python and Perl people aren't going to switch to Ruby just for syntax, they already have langauges that work fine and do the same things. There is, however, this killer app that everyone goes on and on about called "Ruby On Rails." *That* is what gets people in the Ruby door.
Scheme has no compelling applications at all. I plan to create one in the game industry. I figure the only useful way to evangelize is to make $$$$$$ on some product and then tell people what I did. The proof is in the $$$$$$. Not the syntax.
Most people stick with C++, Java, and C# because of $$$$$$. It's only when people think they're making -$ that they move on to something "better," or start seriously looking for something better.
In your case, you still have no $$$$$ riding on anything you do. This is a big part of why you do or don't put effort into various things. This is why I've encouraged you to go get a serious programming job, seeing as how you're ridiculously overqualified for an entry level position. You have no idea what your skills are worth in the marketplace. With your prolific skills you can easily be rich, very rich, but you have to make the move. The perspective of commercial development would radically change how you focus yourself.
> Next time you have some time try writing your own editor rather than > your own language. Implement things like folding, cursor placement > registers and regexp replace. Then if you write a good one you'll find > maintaining your code much easier.
Yeah I thought about doing this sort of thing for a "totally self-enclosed" language and development environment. But as it turns out, I partnered with the Chicken Scheme and CMake guys for base materials instead. Along the way I started swallowing XEmacs, not because I like it so much, but because I had bigger fish to fry. I may revisit the editor question someday. But that depends on all the bazillion things worked meanwhile. By the time you've swallowed enough of XEmacs, do you have an incentive to build your own editor? I'd first consider modifying XEmacs, or Eclipse.
> you know, if I used other peoples' code, there would be a lot less for me to > do, and that wouldn't be good...
False, for 2 reasons. (1) You'd simply work on higher level problems instead of reinventing low-level components. (2) Working with other people's code introduces TONS of maintenance headaches. Believe me, having things to do is NOT a problem. I could sit around perfecting the Chicken Scheme CMake build for the next 6 months. But at some point in that time window, I'm going to call it "good enough" and start focusing on OpenGL and game stuff. That's the real mission.
There is a certain satisfaction in crancking out "easy" improvements for an implementation, however. It may not be as purposeful or important as the major goals that need the most work, but it builds psychological satisfaction in what one is doing and keeps morale up.
> I also am not very creative, so if I am not redoing something it seems, I > get stuck, and if I get stuck then I am not doing any coding.
You can still redo at a much higher level than you're currently redoing. There's TONS of prior art out there to copy from.
Erik Max Francis wrote: > Brandon J. Van Every wrote:
> > You're well acquainted with a > > killfile; use it if cr8 makes life so unpleasant for you. Or just do > > what the rest of us do. Which is pick and choose the points we respond > > to, or decline to read things entirely if we're not interested in them.
> This coming from the guy who's claimed to have killfiled me multiple times.
I don't know if you've noticed, in your haste to bash the next person in some forum or another, but I've been off Usenet for very large stretches at a time. Every time I come back, I see if interactions with people like you are going to be any different. Sometimes they are, and that's a good thing. I've also usually changed apps or ISPs and lost all my killfile entries anyways. I'd be happy to put you in a killfile if I thought it was warranted... except that now I'm on Google Groups and they don't have killfiles as far as I know. I've put in the feature request to them, awhile ago. For the scant volume of Usenet I actually participate in, you alone are not worth me moving to some other app.
Erik, I'm 36 years old now. How old are you now? This kind of posting behavior of yours, where you bash on somebody because they do something you sorta don't like, reminds me of people in their early 20s. Haven't you figured out that there are better ways to spend your time?
> > There is some Scheme stuff scattered in what he says, it's not like > > he's posting about the moonshot or something. Even if he was, gads, > > get a life.
> He's the one talking about having no friends and that's why he has to > post his diary-like entries to random Usenet newsgroups, and I'm the one > who has no life?
Yeah, Erik, you're evidencing a lack of life here. Just because he doesn't have a life doesn't mean you have one. In fact, the need to bash on someone "seemingly weaker" than yourself is the strongest possible evidence of a lack of life. I have questions about why you do it, and I raise them in the hope that peer pressure might someday put a stop to it. But mostly, I hope you ask yourself those questions at some point.
YOU ARE TOO OLD FOR THIS.
And that's the last I'm going to say. About this or anyone else you want to rag on. Even if it ends up being me. Which I anticipate, but maybe you'll surprise me for a change.