Use case scenarios

_images/unicon.png

Index Unicon

Scenarios

Discussing some of the obvious and less obvious use cases where Unicon is at home in providing solutions.

Unicon is a very high level general purpose programming language. In theory, being Turing Complete, any computational problem can be solved with Unicon code. There are areas where Unicon shines bright, and solutions fit the design goals, and areas where Unicon might be better off in a supporting role.

Of some of the more general programming use cases:

  • Command line
  • Desktop
  • Web
  • Mobile
  • Back end services

Of these five main areas, Unicon would be a good first choice in all but the Mobile space. The Unicon ecosystem provides excellent support for command line, desktop, web and backroom service programming. As of version 13, programming with Unicon in the Mobile space would take extra effort to fit comfortably.

Experience

  • on boarding
  • educational materials
  • community support
  • contributing

This author is biased, and old(er), so this section of the document may seem more glowey than usual.

Getting started with Unicon is a very pleasant experience. From ready to go pre-built binaries for many platforms and a smooth source kit build, the on boarding experience with Unicon fares well relative to other programming environments. Educational materials are plentiful and free. The community is small, but very open to help and welcoming to new programmers. Contributions are appreciated and the principals will assist with efforts for inclusion in the product when appropriate.

Processing

Getting more specific:

  • Text processing
  • Numeric processing
  • Data processing
  • Transaction processing
  • Image processing
  • Sound processing

For these areas, Unicon would be a good first choice in all roles; but numeric processing may benefit most by using Multilanguage programming support for heavy number crunching. Unicon is quite good with numbers, large and small, but perhaps not the best choice when large scale numeric processing performance is the priority. Having said that, Unicon is very good at codifying extremely complex algorithms, so programming in Unicon can be highly beneficial when prototyping numeric recipes.

Where Unicon will shine is text processing. Manipulation and analysis of strings of text are a Unicon strength. I/O speeds are also highly competitive.

General data processing is a good fit for Unicon. The advanced data structure and I/O support will rarely be found lacking when it comes to sophisticated data processing tasks. Unicon lends itself very well to applications that can benefit from concise complexity. Solutions that seem out of practical reach when programming in other languages may benefit from goal-directed evaluations, implicit backtracking and associative data stores. Unicon syntax and semantics can place solutions within reach. The overall design of core Icon with Unicon usability enhancements may actually increase the amount of complexity allowed in a system before overwhelming human understanding or codebase maintainability.

Transaction processing is another area where Unicon can fill the role nicely. Ease of networking and concurrent programming support are builtin. There may not be many off-the-shelf Unicon transaction processing frameworks available, but rolling a custom solution is well within the strengths of Unicon programming.

Image processing is well supported as part of the venerable Icon cross-platform Graphics facilities, and Unicon 3D graphic extensions.

Sound file processing is also supported in Unicon, but there may be custom work required for some features that programmers find lacking, relative to other resource manipulation programs.

Development

From some of the more conceptual areas:

  • prototyping
  • testing
  • debugging
  • deployment
  • documentation
  • maintenance

Unicon should be a first choice in any prototype development, full-stop. Testing and deployment features may be less supported than in some other environments, but Unicon is no slouch in these areas either. Due to the write less code paradigm inherent in the very high level feature sets of Unicon and the extensive builtin monitoring facilities, debugging and maintenance task burdens are likely on par with, or helpfully superior to, most other programming environments. In terms of documentation, Unicon hits about the middle; some programming environments offer superior documentation systems, some offer a lesser experience.

Devices

Unicon is not overly rich in low level system programming features. Writing device drivers would not be a point of Unicon strength. Programs that control device drivers, directly via loadfunc loaded C code, or just as a presentation layer, can be coded in Unicon without fuss. Building system level hardware access would definitely require a lot of fussing using Unicon only source codes. Building C support layers, and integrating into the Unicon core would be middling to high levels of fussy.

Sciences

Unicon offers up all the computational facilities a scientist or engineer may require. At this point though, the amount of ready built library support may be lacking in comparison to other programming tools.

Mathematics

Eminently suitable.

Finance

Unlimited precision integers can be used to good effect for fixed point decimal calculations. Banks like decimal arithmetic, and Unicon can help keep track of dollars and cents, given a few support routines that take advantage of unlimited precision integers.


Index | Previous: Unicon Class Library | Next: Programs