Talk:Self (programming language): Difference between revisions

Content deleted Content added
No edit summary
Implementing WP:PIQA (Task 26)
 
(33 intermediate revisions by 15 users not shown)
Line 1:
{{WikiProject banner shell|class=C|
==Rapidly dated information==
{{WikiProject Computing |importance=Low}}
I think it's utterly pointless to include information that is ''guaranteed'' to be out of date quickly. Saying that development was still proceding as of September, 2004 is effectively a statement that will need to be updated every single month (assuming that development really is continuing). Giving the version number of the last release is again another piece of information that is likely to need to be updated. What useful purpose does this information serve? For example, what information does "version 4.2.1" provide to the reader? The article doesn't bother to give any additional information about Self's version history. To someone who's not already quite familiar with Self's development, "version 4.2.1" is just a meaningless number. It's worth noting that this kind of information is against [[Wikipedia:Avoid statements that will date quickly|policy]].
}}
----
Sorry, this is only the case if you say "now is version x.y". Simply change it to "Version x.y was released on a-b-2007" and it is fine. anyone can add future versions then and it will result in a version history. This works fine for so many software prducts in wikipedia.--[[User:87.78.245.247|87.78.245.247]] 20:27, 24 January 2007 (UTC)
----
When it comes to the state of development, I think it is fine to just say "Self is still under active development", or some statement to that effect -- that presents about as much information as the article currently does and won't need to be updated until the statement itself is false (i.e. when development on Self stops). As for the version number, I think we ought to get rid of it entirely, for the reasons stated above. [[User:Neilc|Neilc]] 08:22, 5 Sep 2004 (UTC)
 
== Reference to broken DOI ==
*What about Java?:
A reference was recently added to this article using the [[Template:Cite doi|Cite DOI template]]. The [[User:Citation bot|citation bot]] tried to expand the citation, but could not access the specified DOI. Please check that the [[Digital object identifier|DOI]] [[doi:10.1.1.30.1652]] has been correctly entered. If the DOI is correct, it is possible that it has not yet been entered into the [[CrossRef]] database. Please [http://en.wikipedia.org/w/index.php?title=Template%3ACite+doi%2F10.1.1.30.1652&preload=Template:Cite_doi/preload/nodoi&action=edit complete the reference by hand here].
''#1.4 (2002) - this is the most widely used version as of 2004. The release added the assert keyword, which helps to find errors that might otherwise be difficult to notice or track down.''
The script that left this message was unable to track down the user who added the citation; it may be prudent to alert them to this message. Thanks, [[User:Citation bot 2|Citation bot 2]] ([[User talk:Citation bot 2|talk]]) 10:52, 30 April 2010 (UTC)
''# 5 - The 1.5 release was renamed to Java 2 version 5. This is the most recent release. It includes a number of new language features, some of which could be argued to have been modeled on Microsoft's C#, which was self-consciously modeled on earlier versions of Java''
*And Perl?:
''The current version, 5.8.5, includes Unicode support. Development of the next major release, Perl 6, is also underway. It will run on Parrot, a virtual machine which is being developed as a possible multi-language target architecture.''
*I understand your concern. How can we find a solution that can fits both needs? — [[User:Danakil|danakil]] 16:09, Sep 5, 2004 (UTC)
 
==Extreme/unusual dialect of Smalltalk -?==
:Just because other pages do this doesn't mean they aren't also wrong :) Personally, I think including version information is fine where there's something novel or interesting about a particular release of the language; mentioning that Java 1.5 (erm, 5.0) finally includes generics, for example, or is considered by some to be developed in response to new features in C#, would both qualify as interesting version-specific information. But I'm not sure I see the value in saying "the current version is x, it was released on date y" and nothing more. [[User:Neilc|Neilc]] 02:39, 7 Sep 2004 (UTC)
I removed the 'vague' tag after I edited, but the 'unusual dialect of Smalltalk' phrase which is there now suggests vagueness also. What was so unusual or extreme about this dialect? If we can put info in about this then I think we can avoid the 'vague' tag, otherwise it needs to be re-inserted. Suggestions welcome.
*''something novel or interesting about a particular release''... that's way too subjective for you to have a point. To use your own example: ''Java finally includes generics, for example, or is considered by some to be developed in response to new features in C#''... well, from the point of view of the ''number'' of programmers for the language, then it is interesting that Java does that; however, from another point of view, that one of pure technology itself, those two statements couldn't be more boring and insignificant: Generics have existed in other languages for at least twenty years if not more, and many other languages have been extended in response to new features that appear in competitors; whereas on the other hand, Self has been a significant source of cutting edge technology for past ten years (optimized compilation for dynamic langs, the MORPHIC user/programming interface, the idea of prototype-based OO) ''and'' the fact that the new version runs on Mac OS X is, under still another point of view, quite "relevant" given the fact that the use of Mac OS X is increasing importantly. Many people blame Self's lack of popularity to the fact that the only ''optimized'' implementation only ran on Sun hardware. — [[User:Danakil|danakil]] 03:53, Sep 7, 2004 (UTC)
 
[[User:TonyClarke|TonyClarke]] ([[User talk:TonyClarke|talk]]) 19:55, 31 August 2012 (UTC)
== Windows version ==
 
=="Self was a dialect of Smalltalk"==
I have searched in vain for a version of Self runnable on Windows.
This article claims that Self "was a dialect of Smalltalk". Why is Self no longer considered to be a dialect of Smalltalk? [[User:Jarble|Jarble]] ([[User talk:Jarble|talk]]) 04:02, 15 October 2014 (UTC)
Should I stop?
In other words, is there such a thing?
--[[User:Phil Boswell|Phil]] | [[User talk:Phil Boswell|Talk]] 09:55, Sep 6, 2004 (UTC)
 
== External links modified ==
There is no Self-for-Windows version. That's because part of the Self engine code is writen in Sun Sparc Assmebly language. I learned it long time ago, trying to port Self to a Debian Linux System. [http://br.geocities.com/monsieur_champs/ Champs], 11:19, Mar 13, 2005 (BRT).
 
Hello fellow Wikipedians,
Self has been ported to the PowerPC Macs by the Sun group and to x86 Linux by Gordon Cichon and Harald Gliebe. The latter port is also supposed to work on Windows using Cygwin, but I am not aware of anyone actually using this. I try to keep an updated list of ports in http://www.merlintec.com:8080/Self/ [[User:Jecel|Jecel]] 17:43, 23 Mar 2005 (UTC)
 
I have just added archive links to {{plural:1|one external link|1 external links}} on [[Self (programming language)]]. Please take a moment to review [https://en.wikipedia.org/w/index.php?diff=prev&oldid=678314794 my edit]. If necessary, add {{tlx|cbignore}} after the link to keep me from modifying it. Alternatively, you can add {{tlx|nobots|deny{{=}}InternetArchiveBot}} to keep me off the page altogether. I made the following changes:
The Self versions for Windows and Linux require compilation with GCC 2.x. With GCC 3, the C++ ABI changed (I.e. the ___location of the virtual method tables in C++). Additionally, GCC 3 and 4 have a different interpretation of the C++ standard which makes porting of C++ programs from previous releases (IMHO unnecessarily) hard. --[http://www.self-support.com/ Gordon] Dec 10, 2005
*Added archive https://web.archive.org/20140427064001/http://www.sunlabs.com/research/self/papers/chambers-thesis/thesis.ps.Z to http://www.sunlabs.com/research/self/papers/chambers-thesis/thesis.ps.Z
 
When you have finished reviewing my changes, please set the ''checked'' parameter below to '''true''' to let others know.
== First of a kind ==
 
{{sourcecheck|checked=false}}
Is Self the first protoype-based language historically? If not, what is? [[User:Wlievens|Wouter Lievens]] 14:56, 30 Mar 2005 (UTC)
 
Cheers. —[[User:Cyberbot II|<sup style="color:green;font-family:Courier">cyberbot II</sup>]]<small><sub style="margin-left:-14.9ex;color:green;font-family:Comic Sans MS">[[User talk:Cyberbot II|<span style="color:green">Talk to my owner</span>]]:Online</sub></small> 16:28, 28 August 2015 (UTC)
Object Logo for the Mac was already available commercially in 1986 and it had most of the interesting features of prototype-based languages. [[User:Jecel|Jecel]] 23:50, 8 Apr 2005 (UTC)
 
== External links modified ==
== Is self no longer actively maintained? ==
 
Hello fellow Wikipedians,
I just peeked at Sun's Self page, and it talks about Sun's Self Group and the Self language as things that Sun ''has done'', rather than as things Sun ''is doing''. Does this mean that no one is working to improve the language right now, and perhaps that there are no self implementations under active development?
 
I have just modified one external link on [[Self (programming language)]]. Please take a moment to review [https://en.wikipedia.org/w/index.php?diff=prev&oldid=792540643 my edit]. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit [[User:Cyberpower678/FaQs#InternetArchiveBot|this simple FaQ]] for additional information. I made the following changes:
--[[User:Ryguasu|Ryguasu]] 23:28, 31 October 2005 (UTC)
*Added archive https://web.archive.org/web/20020606124955/http://research.sun.com/self/ to http://research.sun.com/self/
 
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
The Self Project was killed in 1995 as part of Sun's strategy for promoting Java. The core of the group was able to hang on for a while by studying the effects of Self technology on Java (PEP, a Java implementation in Self), studying ways to make more portable virtual machines (Self 4.1 on the Mac), investigating distance learning using the Kansas GUI and looking into different directions in language design (Us, the subjective version of Self). But by 1997 the group was effectively disbanded with everyone being reassigned to Java related projects. In late 1999 things had changed sufficiently that Self 4.1 was finally released to the public and the following year David Ungar was able to start a new language project related to Self instead of Java. There is currently no public information about this project but a side effect of it was that development of Self was restarted and there have been several new releases in the past years. There is a rumor that a new Self virtual machine written in Self is part of this. In any case, the Self Project itself has not been officially restarted at Sun so it makes sense for them to refer to it as you mentioned.
 
{{sourcecheck|checked=false|needhelp=}}
Besides the official project at Sun there have been other Self related projects, like the port to the PC and alternative implementations. A variation of the language that runs on top of Squeak Smalltalk was released this year, for example. I have renamed my own project from "Self/R" to "Neo Smalltalk" to avoid having to explain to each new person I meet that Self is indeed a Smalltalk but the language is still just as related to Self as before.
 
Cheers.—[[User:InternetArchiveBot|'''<span style="color:darkgrey;font-family:monospace">InternetArchiveBot</span>''']] <span style="color:green;font-family:Rockwell">([[User talk:InternetArchiveBot|Report bug]])</span> 03:52, 27 July 2017 (UTC)
[[User:Jecel|Jecel]] 22:24, 9 November 2005 (UTC)
 
== TheExternal environmentlinks ==
 
:There are eleven entries in the "External links". Three seems to be an acceptable number and of course, everyone has their favorite to add for four. The problem is that none is needed for article promotion.
Every time I see this page I am very tempted to simply rip out the first paragraph of "The environment" section complaining about the problems of virtual machine based systems. Since this is a matter of opinion, however, I have so far left it as the original author wrote it.
*[[WP:ELPOINTS|ELpoints #3)]] states: {{tq|Links in the "External links" section should be kept to a minimum. A lack of external links or a small number of external links is not a reason to add external links.}}
 
*[[WP:LINKFARM|LINKFARM]] states: {{tq|There is nothing wrong with adding one or more useful content-relevant links to the external links section of an article; however, excessive lists can dwarf articles and detract from the purpose of Wikipedia. On articles about topics with many fansites, for example, including a link to one major fansite may be appropriate.}}
The problem is that C programs that are stand-alone entities are possible but extremely rare. I have created such myself and this means no dynamic linking of any kind, not even an operating systems. Just your code, a few self contained libraries and the bare hardware. All other C programs depend on rather large and complex run time environments that make Self's virtual machine seem frugal in comparison. You can't take a .exe file and expect it to run on Linux, for example, unless you provide a replacement for the required environment using something like Wine.
*[[WP:ELMIN]]: {{tq|Minimize the number of links}}. -- [[User:Otr500|Otr500]] ([[User talk:Otr500|talk]]) 06:36, 8 March 2023 (UTC)
 
The reason why Self's environment looks worse than what programmers are used to is that it is being nested on top of another environment - the operating system. On a computer where Self ran on the bare hardware users would think of applications in Self as very lightweight and stand-alone things. Programs written in C, on the other hand, would seem to need bloated and awkward support systems in order to run on such a machine. I go into more details about this in my ECOOP'95 paper [http://www.merlintec.com/lsi/jabs7.html] but the important thing is that the complaint about the virtual machine is valid for the particular situation we have today (Self on Unix-like operating systems) but not in general.
[[User:Jecel|Jecel]] 02:20, 15 January 2006 (UTC)
 
: Yeah. The current text isn't neutral or entirely accurate.
 
: The thing about Self (& SmallTalk) is that--unlike many of the other languages most programmers are more familiar with--they tend to insist you come play in their environment rather than trying to integrate with the environment you already have.
 
: (Although, EcmaScript in the browser is kind of an analogous...)
 
: The "persistant image" thing also turns off people (like me) who grew up on C because we're used to being able to make the world come to an end & reboot it fresh. Plus, I don't understand how such a system deals with version control issues, which is another thing that I think can make people uncomfortable with it.
 
: So, those are the things I think a rewrite ought to address.
 
: --[[User:Malirath|Malirath]] 18:49, 12 April 2006 (UTC)
 
:: This is a rather different issue and you raise some very good points. I have had some long discussions with people about the differences between what I call "blueprint systems" (those which are created from scratch from a plan each time they run, so any permanent change must be made to the plan) and "living systems" (once they start they run forever and must be changed on the fly). Each has its advantages but there is a trend to evolve systems that started out as blueprint to be more and more living ones by adding system registries and user configuration files. This gets you the worst of both worlds since then the issues you mentioned don't even get discussed or considered. --[[User:Jecel|Jecel]] 00:24, 20 July 2006 (UTC)
 
== Spelling the name of the language ==
 
This isn't an issue for this page, but since I have seen "SELF" in so many papers and web pages I thought I should mention this bit of trivia, which might avoid somebody "fixing" this page in the future.
 
In the original Self paper the name of the language used the small caps typographic convention for the main title and in the text. This was also done in most other papers by the Self group. So the "S" was indeed a capital letter but the "elf" only seemed so if you were distracted or wanted to reproduce that appearance with a typewriter or some similarly limited medium. --[[User:Jecel|Jecel]] 00:33, 20 July 2006 (UTC)
 
== Article needs a lot of work ==
 
 
Issues:
 
* It's completely unsourced.
* It reads somewhat like advocacy for the language.
* Much material is redundant with, and/or more appropriate for, [[Prototype-based programming]].
* The tone is more like a tutorial/HOWTO than an encyclopedia article.
* Quite a bit of interesting material, such as [[polymorphic inline cache]]s, is omitted.
 
I'll start addressing these as I have time to do so. Other editors of the article might do this as well.
 
--[[User:EngineerScotty|EngineerScotty]] 20:14, 28 November 2006 (UTC)
 
==Terrible Formatting and Flow==
 
I just can't believe a programmer wrote this stuff. The flow of logic is terrible! The lack of punctuation is appalling!
 
*For all things that are good and holy, don't you know that the double-space after a period was relinquished with the typewriter?
*Use language that makes sense!
 
::*"Traditional class-based OO languages are based on a deep-rooted duality. ''Classes'' define the basic qualities and behaviours of objects, and ''object instances'' are particular objects which are based on a class."
::::'''That's a terrible description!'''
 
::*"For instance, one might have a <code>Vehicle</code> class that has a ''name'' and the ability to perform ''drive to work'' and ''deliver construction materials''."
::::'''Classes don't ''have'' a ''name''! They specify that ''objects'' of that class have a name.'''
 
At least refer the reader to possibly better information; I stopped my improvements when I realized the problems were systemic. How can you possibly program properly when your ideas are so muddled? Perhaps that's why:
::"All too often the program would eventually need added behaviours, and the whole system (or rather sections of it) need to be re-designed (or refactored) to break out the objects in a different way."
--[[User:Lingwitt|Lingwitt]] 04:53, 29 January 2007 (UTC)
 
:Thanks for the kind words Lingwitt, I'll be sure to remember them the next time I decide to write an article on an obscure topic in an effort to save it from historical obscurity. After all, I just ''love'' being called a know-nothing in public after spending hours at the keyboard looking up resources so other people might find something of interest on an underreported topic. But I'm sure you're right, clearly you can do a much better job. I'm sure you would never make a basic mistake like implying that classes have names... oh wait, what's this in the Java documentation... "obj.getClass().getName())". Oh well, so much for that line of reasoning. And really, if one is going to complain about punctuation, using exclamation marks is likely to do little to support your position. I'll file your comments properly: *plank* [[User:Maury Markowitz|Maury]] 20:24, 26 July 2007 (UTC)
 
::Sigh. First, you're right that Lingwitt's tone is completely inappropriate. Second, you're right that Lingwitt's claim that classes don't have names is absurd. However, for your example, obj.class.getName() would yield "Vehicle", not "Porsche 911", but "has a name" is clearly intended to refer to the latter, not the former. -- [[User:Jibal|Jibal]] 01:23, 10 August 2007 (UTC)
 
:For a calmer, more rational, and better informed discussion of the double-space after period issue, see http://en.wikipedia.org/wiki/Full_stop#Spacing_after_full_stop -- [[User:Jibal|Jibal]] 01:30, 10 August 2007 (UTC)