Skip to content

Example implementations of concurrent file size comparison in various languages

License

Notifications You must be signed in to change notification settings

sfinnie/concomp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#ConComp Example implementations of concurrent file size comparison in various languages. This repo is somewhat inspired by todoMVC. It's useful to see how different languages approach a problem that's simple enough to understand, yet complex enough to get a feel for the language features and philosophy.

#The Problem

Is best described by example:

$ concomp file1.txt file2.txt file3.txt

file2.txt is the biggest.

$ concomp file1.txt file3.txt

The files are the same size.

That's it. Simple. A program that:

  • runs from the command line
  • accepts two or more parameters, where each is the name of a file
  • compares the sizes of each, and
  • reports which is largest.
  • If they're all the same size, it should say so.

##Where's the interest? The purpose is to demonstrate the concurrency features in the language. So there's one other requirement:

  • Fetching the size of the supplied files should be completed concurrently.

It's simple yet representative of a large class of problems; perform some concurrent activities, then perform a subsequent action that takes as input the result of the concurrent tasks. It's the basic pattern in map reduce.

What that means practically will differ across languages - that's the point.

To be more credible, the files to compare should be remote resources rather than local - so fetching each takes a non-trivial amount of time. However, that's not mandatory. It's not a performance test. It's about coding style. As long as the code demonstrates fetching concurrently, it doesn't really matter where the files are located.

About

Example implementations of concurrent file size comparison in various languages

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published