Knowledge (XXG)

VisualWorks

Source 📝

1309: 1299: 22: 648:, including classes. In browsing Smalltalk classes the developer gleans definitions from executing objects. The main browser/editor in VisualWorks is the System Browser. It allows the developer to browse classes either in the overall class hierarchy or through their packages. It is launched from the VisualWorks Launcher. 742:
and opened an editor onto it. The editor itself is an object, as are all its components (down to and including the characters in its menus). The source code is available for all these objects, and VisualWorks has a plethora of inspectors, browsers, and other tools for anyone to evaluate and inspect
548:
When a parcel is loaded it is organized as a package, or bundle of packages. When looking for code loaded from a parcel, one can locate the bundle or package with the same name in the System Browser. Packages are categories that organize classes into related groups, according to component. Packages
379:
minimises most collection pauses, but may not be suitable for hard real-time and determinism requirements, as long full collections may occur, which may stop the world for tens to hundreds of milliseconds, proportional to heap size. However, garbage collection is preferable over manual memory
528:
The Parcel Manager is used to load and unload all parcels on the parcel path. A Suggestions view lists Categories containing key add-in parcels-by selecting a category, you get a list of recommended parcels. For example, the UI Painter is located in the Essentials category. There is also a
608:, which means the only way to get something to happen within Smalltalk is by sending messages to objects. VisualWorks uses the Smalltalk-80 language as standard, but comes with its own set of classes and methods. So even basic classes, like Object, differ from those in other Smalltalk-80 487:
An Examples Browser is provided as a parcel in the examples directory. Several image level switches are available to specify parcel loading on image startup. The parcel path is the list of directories where VisualWorks looks for parcels. This can be set using the System Settings tool.
532:
A supported VisualWorks product parcel is represented by an icon that looks like a parcel. Parcels from other vendors look like a shopping sack. Because of the convoluted history of Smalltalk class development this can be very useful. For instance, a parcel icon indicates that the
307:. In the late 1980s, a group of Smalltalk-80 developers spun off ParcPlace Systems to further develop Smalltalk-80 as a commercial product. The commercial product was initially named ObjectWorks, and then VisualWorks. On August 31, 1999, the VisualWorks product was sold to 346:
VisualWorks allows for very fast application development, as individual methods can be compiled even while the program to be developed is running. Compiling a Smalltalk method typically takes significantly less than a second, while doing the same for a
502:
The parcel code's organization on loading is determined by its creation. If it was created by publishing a package, it is loaded into the same package. If created from a bundle, it can be reloaded as the bundle or as one package.
380:
management in an object-oriented language, and the programmer can take various actions to control when and for how long garbage collection occurs; so under most circumstances, garbage collection is not a concern.
659:
When a variable is deleted while references to it still exist, or is loaded via a parcel but never declared, its name enters the Undeclared name space. Undeclared variables can cause certain program errors.
351:
project often takes a minute or more, and cannot be done easily without restarting the process. The various code browsers of VisualWorks help the developer to quickly locate a class or method of interest.
334:(GUI) application needs to be developed only once, and can then be switched to different widget styles. A VisualWorks application can be run on all supported platforms with no modifications. Only the 375:
by generating machine code that is specialised for frequently used types, but numeric processing and programs that benefit from precise memory layout may still run slower. The generational
844: 651:
List panes in the System Browser allow developers to navigate to class and method definitions. They can then be viewed or edited in a code view, or modified with a new definitions.
529:
Directory-tree view of the parcel path, for finding parcels outside the Suggestions view. A Loaded view lists all parcels already in the image. Only loaded parcels can be browsed.
1339: 1313: 476:
suffix. It is still supported in VisualWorks, but has been superseded by a Parcels mechanism. There are examples in file-in format in the examples subdirectory.
1334: 837: 565:. Additional class libraries are provided by VisualWorks or third-party vendors, usually as parcel files. For most non-Smalltalk development environments, 495:
for VisualWorks. Packages and bundles organize the code and model the contents of parcels. Parcels are created by publishing packages/bundles. The term
620:. The illustrative examples here work in VisualWorks Smalltalk, but may not work in other Smalltalks because the classes and/or methods may differ. 830: 376: 605: 1263: 1182: 871: 149: 609: 465: 105: 755: 968: 549:
can be grouped into bundles. Packages and bundles can be saved (published) as parcels, or saved into a source code repository.
519:
Every class in the parcel is sent message post Load: the Package, and any action executed. This is often an application launch.
1223: 1057: 43: 472:. Every file-in document provides a simple textual representation of a Smalltalk class, or classes, in a text file with a 364: 330:
VisualWorks supports cross-platform development projects, because of its built-in multi-platform features. For example, a
86: 499:, in the VisualWorks sphere, is used to refer to parcels, packages, and bundles when it is not necessary to be specific. 58: 39: 696:
One can evaluate this expression as-is in a VisualWorks workspace using one command in the operate menu. This creates:
988: 629: 261: 257: 129: 368: 65: 32: 816: 709: 701: 679: 641: 1298: 1049: 687: 461: 389: 372: 331: 355:
The performance and throughput of Smalltalk programs can approach the performance of static languages such as
775: 72: 534: 1303: 577:, code libraries are loaded into the running system, and become part of the environment. For example, the 492: 1121: 675: 54: 388:
All components of the VisualWorks system are installed on Windows 7 or later in a Program Files\Cincom
1292: 593:, is the control centre for the VisualWorks system. It is the launching pad for all the major tools. 229: 124: 1141: 1081: 946: 898: 393: 1092: 1062: 1022: 672: 184: 156: 578: 668: 558: 892: 617: 312: 217: 1258: 1243: 1177: 1086: 961: 686:
can be easily subsumed into the object structure within VisualWorks. Consider the Smalltalk
224: 196: 1238: 1031: 1019: 886: 335: 136: 79: 1154: 1136: 308: 304: 201: 189: 165: 161: 1328: 1253: 1233: 904: 683: 637: 562: 734:-like editor containing the contents of the file. That is, the evaluation created a 1268: 1248: 1228: 566: 469: 297: 822: 513:
Any defined pre-load action is performed (e.g. undeclared variables initialized).
303:
The lineage of VisualWorks goes back to the first Smalltalk-80 implementation by
1207: 1202: 1192: 1187: 1103: 1037: 633: 570: 433: 425: 177: 172: 145: 21: 1111: 1003: 720: 645: 429: 751: 929: 853: 601: 574: 540:
One can also load and unload parcels programmatically from the application.
457: 289: 265: 205: 412:
VisualWorks assumes a three-button mouse with buttons having logical names
1197: 1075: 995: 862: 735: 731: 296:, which are dynamic collections of software objects, each contained in a 141: 360: 914: 613: 269: 644:
definitions. In VisualWorks, like all Smalltalks, everything is an
356: 348: 975: 920: 320: 316: 213: 209: 808: 240: 716: 705: 324: 826: 468:
to generate any classes not already contained in the Smalltalk
444:
brings up a menu of operations for the current view/selection.
1146: 15: 424:. Although, a one or two button mouse can be used along with 292:
language. It is implemented as a development system based on
311:. VisualWorks runs under many operating systems, including 561:
image contains minimal development facilities, using basic
448:
initiates actions (move, close...) on VisualWorks windows.
464:
as text files. These can be "filed in" to the VisualWorks
484:
Parcels are external file representations of packages.
671:
illustrates how VisualWorks can be used to manipulate
632:
environments a developer directly edits a plain text
1170: 1163: 1129: 1120: 1102: 1048: 1018: 945: 879: 870: 861: 251: 235: 223: 195: 183: 171: 155: 135: 123: 46:. Unsourced material may be challenged and removed. 754:are produced for Cincom Smalltalk often, and a 704:of class ByteString containing the string (as 589:The VisualWorks Launcher, usually just called 401: 838: 783:VisualWorks 7.6 Application Developer's Guide 8: 288:) is a cross-platform implementation of the 118: 1167: 1126: 876: 867: 845: 831: 823: 117: 106:Learn how and when to remove this message 396:of the installed system – for instance, 767: 569:are imported at compile time, using an 510:Any prerequisite components are loaded. 669:Cincom's first tutorial on VisualWorks 1340:Smalltalk programming language family 516:Objects in the package are installed. 7: 743:the code in static or dynamic mode. 606:object oriented programming language 506:The load sequence for a package is: 44:adding citations to reliable sources 1335:Integrated development environments 624:Browsing and editing Smalltalk code 400:. This directory contains several 14: 678:. It illustrates how things like 402:subdirectories including bin, doc 1308: 1307: 1297: 738:object as a gateway to the file 20: 819:at UIUC archived at archive.org 693:'ws000101.log' asFilename edit 456:File-in format is the original 31:needs additional citations for 537:is now VisualWorks supported. 440:selects any interface object. 1: 404:, examples and many others. 630:object-oriented programming 1356: 1281: 1050:Graphical user interfaces 256: 460:format for representing 332:graphical user interface 730:The latter is a simple 581:is loaded as a parcel. 408:Mouse buttons and menus 338:is platform-dependent. 785:. Cincom. pp. 1–3 553:Loading code libraries 535:Arbor hypertext system 342:Benefits and drawbacks 1058:Model–view–controller 776:"Running VisualWorks" 373:just-in-time compiler 164:, ParcPlace Systems, 1293:Open-source software 856:programming language 712:for manipulating it; 655:Undeclared variables 585:VisualWorks Launcher 493:component technology 491:Parcels provide the 40:improve this article 715:An object of class 120: 1322: 1321: 1277: 1276: 1219: 1218: 1071: 1070: 1014: 1013: 893:Dolphin Smalltalk 726:An editor object. 618:Dolphin Smalltalk 377:garbage collector 275: 274: 173:Typing discipline 116: 115: 108: 90: 1347: 1311: 1310: 1301: 1259:Trygve Reenskaug 1244:Mark P. McCahill 1178:L. Peter Deutsch 1168: 1127: 983:Pocket Smalltalk 962:Little Smalltalk 877: 868: 847: 840: 833: 824: 817:VisualWorks wiki 812: 811: 809:Official website 794: 793: 791: 790: 780: 772: 756:Seaside tutorial 741: 664:String and files 646:executing object 636:file containing 597:Smalltalk basics 475: 447: 443: 439: 423: 419: 415: 399: 392:named after the 286:Cincom Smalltalk 247: 244: 243:.cincomsmalltalk 242: 137:Designed by 121: 111: 104: 100: 97: 91: 89: 48: 24: 16: 1355: 1354: 1350: 1349: 1348: 1346: 1345: 1344: 1325: 1324: 1323: 1318: 1296: 1273: 1239:Julian Lombardi 1215: 1159: 1116: 1098: 1067: 1044: 1032:Croquet Project 1020:Virtual reality 1010: 941: 872:Implementations 857: 851: 807: 806: 803: 798: 797: 788: 786: 778: 774: 773: 769: 764: 749: 739: 694: 666: 657: 628:In traditional 626: 599: 587: 563:class libraries 555: 546: 526: 482: 473: 454: 445: 442:<Operate> 441: 437: 421: 418:<Operate> 417: 413: 410: 397: 386: 344: 336:virtual machine 239: 130:Object-oriented 112: 101: 95: 92: 49: 47: 37: 25: 12: 11: 5: 1353: 1351: 1343: 1342: 1337: 1327: 1326: 1320: 1319: 1317: 1287:= discontinued 1282: 1279: 1278: 1275: 1274: 1272: 1271: 1266: 1261: 1256: 1251: 1246: 1241: 1236: 1231: 1226: 1220: 1217: 1216: 1214: 1213: 1210: 1205: 1200: 1195: 1190: 1185: 1183:Adele Goldberg 1180: 1174: 1172: 1165: 1161: 1160: 1158: 1157: 1152: 1149: 1144: 1139: 1137:Cincom Systems 1133: 1131: 1124: 1118: 1117: 1115: 1108: 1106: 1100: 1099: 1097: 1096: 1090: 1084: 1079: 1072: 1069: 1068: 1066: 1065: 1060: 1054: 1052: 1046: 1045: 1043: 1042: 1027: 1025: 1016: 1015: 1012: 1011: 1009: 1008: 1000: 992: 986: 980: 972: 966: 958: 951: 949: 943: 942: 940: 939: 934: 926: 925: 924: 912: 909: 901: 896: 890: 883: 881: 874: 865: 859: 858: 852: 850: 849: 842: 835: 827: 821: 820: 814: 802: 801:External links 799: 796: 795: 766: 765: 763: 760: 748: 745: 728: 727: 724: 713: 692: 665: 662: 656: 653: 625: 622: 598: 595: 586: 583: 567:code libraries 554: 551: 545: 542: 525: 524:Parcel manager 522: 521: 520: 517: 514: 511: 481: 478: 453: 452:File-in format 450: 446:<Window> 438:<Select> 422:<Window> 414:<Select> 409: 406: 394:version number 385: 382: 343: 340: 323:, and several 309:Cincom Systems 273: 272: 254: 253: 249: 248: 237: 233: 232: 227: 221: 220: 202:Cross-platform 199: 193: 192: 190:Cross-platform 187: 181: 180: 175: 169: 168: 166:Cincom Systems 159: 153: 152: 150:Adele Goldberg 139: 133: 132: 127: 114: 113: 96:September 2010 28: 26: 19: 13: 10: 9: 6: 4: 3: 2: 1352: 1341: 1338: 1336: 1333: 1332: 1330: 1316: 1315: 1306: 1305: 1300: 1295: 1294: 1289: 1288: 1285: 1280: 1270: 1267: 1265: 1262: 1260: 1257: 1255: 1254:David P. Reed 1252: 1250: 1247: 1245: 1242: 1240: 1237: 1235: 1232: 1230: 1227: 1225: 1222: 1221: 1212:Scott Wallace 1211: 1209: 1206: 1204: 1201: 1199: 1196: 1194: 1191: 1189: 1186: 1184: 1181: 1179: 1176: 1175: 1173: 1169: 1166: 1162: 1156: 1153: 1150: 1148: 1145: 1143: 1140: 1138: 1135: 1134: 1132: 1128: 1125: 1123: 1119: 1114: 1113: 1109: 1107: 1105: 1101: 1094: 1091: 1088: 1085: 1083: 1080: 1077: 1074: 1073: 1064: 1061: 1059: 1056: 1055: 1053: 1051: 1047: 1040: 1039: 1034: 1033: 1029: 1028: 1026: 1024: 1021: 1017: 1006: 1005: 1001: 998: 997: 993: 990: 987: 984: 981: 978: 977: 973: 970: 967: 964: 963: 959: 956: 953: 952: 950: 948: 944: 938: 935: 933: 931: 927: 922: 919: 918: 916: 913: 910: 907: 906: 905:GNU Smalltalk 902: 900: 897: 894: 891: 888: 885: 884: 882: 878: 875: 873: 869: 866: 864: 860: 855: 848: 843: 841: 836: 834: 829: 828: 825: 818: 815: 810: 805: 804: 800: 784: 777: 771: 768: 761: 759: 757: 753: 746: 744: 737: 733: 725: 722: 719:Filename (in 718: 714: 711: 707: 703: 699: 698: 697: 691: 689: 685: 681: 677: 674: 670: 663: 661: 654: 652: 649: 647: 643: 639: 635: 631: 623: 621: 619: 615: 611: 607: 603: 596: 594: 592: 584: 582: 580: 576: 572: 568: 564: 560: 552: 550: 543: 541: 538: 536: 530: 523: 518: 515: 512: 509: 508: 507: 504: 500: 498: 494: 489: 485: 479: 477: 471: 467: 463: 459: 451: 449: 435: 431: 427: 407: 405: 403: 395: 391: 383: 381: 378: 374: 370: 366: 362: 358: 353: 350: 341: 339: 337: 333: 328: 326: 322: 318: 314: 310: 306: 301: 299: 295: 291: 287: 283: 279: 271: 267: 263: 259: 255: 252:Influenced by 250: 246: 238: 234: 231: 228: 226: 222: 219: 215: 211: 207: 203: 200: 198: 194: 191: 188: 186: 182: 179: 176: 174: 170: 167: 163: 160: 158: 154: 151: 147: 143: 140: 138: 134: 131: 128: 126: 122: 110: 107: 99: 88: 85: 81: 78: 74: 71: 67: 64: 60: 57: –  56: 55:"VisualWorks" 52: 51:Find sources: 45: 41: 35: 34: 29:This article 27: 23: 18: 17: 1312: 1302: 1290: 1286: 1283: 1269:Larry Tesler 1249:Andreas Raab 1229:Gilad Bracha 1110: 1036: 1030: 1002: 994: 982: 976:OMeta/Squeak 974: 960: 954: 936: 928: 903: 787:. Retrieved 782: 770: 750: 740:ws000101.log 729: 695: 667: 658: 650: 627: 600: 591:the Launcher 590: 588: 573:command. In 557:The initial 556: 547: 539: 531: 527: 505: 501: 496: 490: 486: 483: 455: 411: 387: 384:Installation 354: 345: 329: 302: 298:system image 293: 285: 284:, afterward 281: 277: 276: 102: 93: 83: 76: 69: 62: 50: 38:Please help 33:verification 30: 1264:David Smith 1208:David Ungar 1203:Diana Merry 1193:Ted Kaehler 1188:Dan Ingalls 1151:Object Arts 1104:Workstation 1038:Open Cobalt 937:VisualWorks 911:Smalltalk/X 634:source code 282:ObjectWorks 278:VisualWorks 230:Proprietary 208:(several), 146:Dan Ingalls 119:VisualWorks 1329:Categories 1234:Urs Hölzle 1155:Xerox PARC 1112:Xerox Alto 1082:GemStone/S 1004:Strongtalk 899:GemStone/S 789:2009-04-25 762:References 721:Windows XP 708:) and the 688:expression 604:is a pure 579:UI Painter 497:components 327:versions. 305:Xerox PARC 280:(formerly 162:Xerox PARC 157:Developers 66:newspapers 1171:Designers 1122:Community 1023:platforms 932:Smalltalk 930:VisualAge 854:Smalltalk 752:Tutorials 747:Tutorials 676:log files 602:Smalltalk 575:Smalltalk 559:visual.im 458:Smalltalk 390:directory 290:Smalltalk 266:Sketchpad 206:Unix-like 1314:Category 1224:Lars Bak 1198:Alan Kay 1142:Gemstone 1130:Business 1076:AIDA/Web 996:StepTalk 969:Newspeak 955:F-Script 947:Dialects 863:Software 813:, Cincom 758:exists. 736:filename 732:notebook 544:Packages 371:using a 185:Platform 142:Alan Kay 125:Paradigm 1284:Italics 1093:Seaside 1063:Morphic 710:methods 680:strings 571:include 480:Parcels 462:classes 434:Command 398:vw7.5nc 361:Fortran 313:Windows 236:Website 225:License 218:Windows 178:Dynamic 80:scholar 1164:People 915:Squeak 723:); and 702:object 673:server 642:method 614:Squeak 436:keys. 430:Option 420:, and 365:Pascal 294:images 270:Simula 82:  75:  68:  61:  53:  1087:Moose 921:Pharo 887:Amber 880:Major 779:(PDF) 706:bytes 684:files 638:class 612:like 470:image 432:, or 367:, or 321:Linux 317:macOS 214:Linux 210:macOS 87:JSTOR 73:books 1304:Book 1291:° = 1035:° → 989:Self 717:NTFS 682:and 640:and 616:and 610:IDEs 426:Ctrl 325:Unix 262:Logo 258:Lisp 245:.com 59:news 1147:IBM 700:An 474:.st 466:IDE 369:Ada 357:C++ 349:C++ 241:www 42:by 1331:: 917:° 781:. 690:: 428:, 416:, 363:, 359:, 319:, 315:, 300:. 268:, 264:; 260:, 216:, 212:, 204:: 197:OS 148:, 144:, 1095:° 1089:° 1078:° 1041:° 1007:° 999:° 991:° 985:° 979:° 971:° 965:° 957:° 923:° 908:° 895:° 889:° 846:e 839:t 832:v 792:. 109:) 103:( 98:) 94:( 84:· 77:· 70:· 63:· 36:.

Index


verification
improve this article
adding citations to reliable sources
"VisualWorks"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Paradigm
Object-oriented
Designed by
Alan Kay
Dan Ingalls
Adele Goldberg
Developers
Xerox PARC
Cincom Systems
Typing discipline
Dynamic
Platform
Cross-platform
OS
Cross-platform
Unix-like
macOS
Linux
Windows

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.