Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
J (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Programming language}} {{Infobox programming language | name = J | logo = J (programming language) icon.png | file_ext = | paradigm = [[Array programming|Array]], [[Functional programming|functional]], [[Object-oriented programming|object-oriented]] ([[Class-based programming|class-based]], [[Prototype-based programming|prototype-based]]), [[Function-level programming|function-level]], [[Tacit programming|tacit]] | released = {{Start date and age|1990}} | designer = [[Kenneth E. Iverson]], [[Roger Hui]] | developer = JSoftware | latest release version = J9.6 | latest release date = {{Start date and age|2025|02|25|df=yes}}<ref>{{cite web |url= https://code.jsoftware.com/wiki/System/ReleaseNotes/J9.6 |title= Release Notes J9.6}}</ref> | latest preview version = | latest preview date = | typing = [[dynamic typing|dynamic]] | implementations = J | dialects = | influenced by = [[APL (programming language)|APL]] | influenced = [[NumPy]],<ref name="Python for Data Analysis">[http://traims.tumblr.com/post/33883718232/python-for-data-analysis-18-oct-2012-london Wes McKinney at 2012 meeting Python for Data Analysis]</ref> [[SuperCollider]]<ref name="SuperCollider documentation">[http://doc.sccode.org/Reference/Adverbs.html SuperCollider documentation, Adverbs for Binary Operators]</ref> | operating system = [[Cross-platform]]: [[Microsoft Windows|Windows]], [[Linux]], [[macOS]], [[Android (operating system)|Android]], [[iOS]], [[Raspberry Pi]]<ref>{{Cite web|url=https://www.jsoftware.com/#/README|title = Jsoftware}}</ref> | license = [[GNU General Public License|GPLv3]] | website = {{URL|www.jsoftware.com}} | wikibooks = }} The '''J''' [[programming language]], developed in the early 1990s by [[Kenneth E. Iverson]] and [[Roger Hui]],<ref>[https://web.archive.org/web/20040812193452/http://home1.gte.net/res057qw/APL_J/IversonAPL.htm A Personal View of APL], 1991 essay by K.E. Iverson (archived link)</ref><ref>[http://jsoftware.com/pipermail/general/2002-March/010962.html Overview of J history] by Roger Hui (19 March 2002)</ref> is an [[array programming]] language based primarily on [[APL (programming language)|APL]] (also by Iverson). To avoid repeating the APL special-character problem, J uses only the basic [[ASCII]] character set, resorting to the use of the dot and colon as ''inflections''<ref>[http://code.jsoftware.com/wiki/Vocabulary/Words J NuVoc Words]</ref> to form short words similar to ''[[digraph (computing)|digraph]]s''. Most such ''primary'' (or ''primitive'') J words serve as mathematical symbols, with the dot or colon extending the meaning of the basic characters available. Also, many characters which in other languages often must be paired (such as <code>[] {} "" ``</code> or <code><></code>) are treated by J as stand-alone words or, when inflected, as single-character roots of multi-character words. J is a very terse [[array programming language]], and is most suited to [[mathematical]] and [[statistical]] programming, especially when performing operations on [[matrix (mathematics)|matrices]]. It has also been used in [[extreme programming]]<ref>{{Cite book |title= Software Development as a Collaborative Writing Project |series= Extreme programming and agile processes in software engineering |place= Oulu, Finland |year= 2006 |first1= Brian |last1= Bussell |first2= Stephen |last2= Taylor |pages= 21β31 |publisher= [[Springer Science+Business Media|Springer]] |isbn= 978-3-540-35094-1}}</ref> and [[network performance]] analysis.<ref>{{Cite book |first= Alan |last= Holt |title= Network Performance Analysis: Using the J Programming Language |isbn= 978-1-84628-822-7 |year= 2007 |publisher= [[Springer Science+Business Media|Springer]]}}</ref> Like [[John Backus]]'s languages [[FP (programming language)|FP]] and [[FL (programming language)|FL]], J supports [[function-level programming]] via its ''[[tacit programming]]'' features. Unlike most languages that support [[object-oriented programming]], J's flexible hierarchical [[namespace]] scheme (where every name exists in a specific ''locale'') can be effectively used as a framework for both [[class-based programming|class-based]] and [[prototype-based programming|prototype-based]] object-oriented programming. Since March 2011, J is [[free and open-source software]] under the [[GNU General Public License]] version 3 (GPLv3).<ref name="j source download">[https://www.jsoftware.com/#/source Jsoftware's source download page]</ref><ref name="j_gpl">{{cite web |url= http://thread.gmane.org/gmane.comp.lang.j.programming/20882 |title= J Source GPL |date= 1 March 2011 |author= Eric Iverson |work= J programming mailing list |access-date= 24 June 2015 |archive-date= 23 September 2016 |archive-url= https://web.archive.org/web/20160923133425/http://thread.gmane.org/gmane.comp.lang.j.programming/20882 |url-status= dead }}</ref><ref>{{github|openj/core|openj}}</ref> One may also purchase source under a negotiated license.<ref name="j_source">[https://www.jsoftware.com/#/source Jsoftware's sourcing policy]</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)