Go to file
Philippe Rochat fc6ce4c2f9 Merge branch 'launch4jw' 2014-11-13 23:49:43 +01:00
gradle/wrapper Added gradle wrapper, so now you don't need to install gradle to get started (why didn't I know about this sooner?!?) 2014-03-12 11:40:36 -04:00
launch4j Added Launch4j in the project 2014-11-13 23:46:55 +01:00
libs Initial work on Gradle build system to replace Apache buildr. 2013-09-16 15:22:21 -04:00
notes Updated README.TXT to reflect all changes for 2.7.1. 2011-03-21 20:22:32 +00:00
scripts Added MacApp Bundle 2014-11-04 00:02:44 +01:00
src Done essential french translation 2014-11-13 22:48:43 +01:00
www Created files to support Spanish translation and created directory hierarchy for Greek documentation translation. 2011-03-11 10:36:21 +00:00
xlate Ru xlate: periodic update. 2011-04-07 15:29:44 +00:00
.gitignore Ignore KDiff output. 2014-03-28 11:18:24 -04:00
Buildfile Updated to use Commons-generic. 2012-10-30 10:43:33 -04:00
LICENSE Include Apache Commons as a dependency. 2012-10-21 14:01:53 -04:00
NOTICE Added NOTICE file from Logisim about page. 2012-10-18 00:26:58 -04:00
README.md Added gradle wrapper, so now you don't need to install gradle to get started (why didn't I know about this sooner?!?) 2014-03-12 11:40:36 -04:00
build.gradle Added MacApp Bundle 2014-11-04 00:02:44 +01:00
config.xml Launch4j part of build script. 2012-10-27 14:38:05 -04:00
gradlew Added Launch4j in the project 2014-11-13 23:46:55 +01:00
gradlew.bat Added gradle wrapper, so now you don't need to install gradle to get started (why didn't I know about this sooner?!?) 2014-03-12 11:40:36 -04:00

README.md

README

Logisim is a circuit simulator, originally available here.

Why this fork of Logisim?

Carl Burch, the original author of Logisim, abandoned development in 2011 and moved on to a similar successor project, Toves in 2013, because Logisim's code base is in need of a major overhaul. Rather than start from scratch (something you should never do), this fork of Logisim picks up where Dr. Burch left off to incrementally improve Logisim.

What's wrong with Logisim?

Logisim's code itself has numerous smells. Here's an incomplete list of these:

  • No test suite!
  • Undocumented packages, classes, methods
  • Duplicated and dead code
  • No coherent organization (it should be MVC)
  • High coupling, low cohesion (it would benefit from IoC)
  • Unnecessarily reimplements functionality found in standard or third party libraries (e.g., it has it's own Toolbar classes)
  • Code to draw components is too low-level

Logisim's user interface has numerous gotchas that need to be addressed. Here's some of the more important issues:

  • The file format is not merge-friendly, making it impossible for students to collaborate on circuits
  • Unreasonable defaults
  • Limited interaction styles
  • Single (graphical) view of circuit

What's right with Logisim?

It is arguably the best free tool for teaching circuit design, which is why its development must continue.

Getting started for developers

The build script recognizes the following commands:

./gradlew build     # Build application jar
./gradlew eclipse   # Build Eclipse configuration
./gradlew createExe # Build logisim executable
./gradlew run       # Run logisim from gradle
./gradlew sonar     # Examine problems using Sonar

To build the executable for Windows, you must install launch4j and ensure it is in the system path.

To examine problems with Sonar, you need to download SonarQube (the server) first into a folder without spaces in it. Then, run SonarQube for your platform and run gradlew sonar and go to Sonar's page. See the status of what everybody's working on using the Logisim Trello Board.