Codetown ::: a software developer's community
object Hello {
def main(args: Array[String]): Unit = {
println("Hello world.")
}
}
powerbookg4:tmp zemian$ scalac Hello.scala powerbookg4:tmp zemian$ scala Hello
Hello world.
Note that Scala main entry program is a "object" instead of "class". "object" in Scala is like a class that define a type, but it force it to be a singleton(only one instance), so it almost like "static" in Java. Your main entry in command line must be an object with the main method defined.
You may turn your source file into a script by enter a expression that invoke the main method on the end of the file, and then run it through "scala" instead of compiling it. For example:
object Hello {
def main(args: Array[String]): Unit = {
println("Hello world.")
}
}
Hello.main(args)
powerbookg4:tmp zemian$ scala Hello.scala Hello world.
Note the difference. 1 no compile. 2 you give scala the script file name, not the type name!
Happy programming!
Tags:
Codetown is a social network. It's got blogs, forums, groups, personal pages and more! You might think of Codetown as a funky camper van with lots of compartments for your stuff and a great multimedia system, too! Best of all, Codetown has room for all of your friends.
Created by Michael Levin Dec 18, 2008 at 6:56pm. Last updated by Michael Levin May 4, 2018.
Check out the Codetown Jobs group.

Airbnb has revealed how it significantly improved its observability practices by rethinking how alerts are developed and validated, concluding that what appeared to be a "culture problem" was actually a tooling and workflow gap.
By Craig Risi
OpenAI announced they are extending the Responses API to make it easier for developer to build agentic workflows, adding support for a shell tool, a built-in agent execution loop, a hosted container workspace, context compaction, and reusable agent skills.
By Sergio De SimoneThis eMag explores the shift from AI experimentation to production, where legacy defenses fall short. We dive into the critical trifecta of AI-driven phishing, model poisoning, and cloud governance. By rethinking security as a lifecycle responsibility, this issue provides a roadmap for securing the machine age through layered tactics, robust MLOps, and responsible deployment frameworks.
By InfoQ
Shana Dacres-Lawrence explains the complex relationship between security and architecture, identifying three types of "betrayal" - physical, emotional, and trust - that lead to systemic failure. Drawing on real-world incidents like CrowdStrike and Change Healthcare, she shares five defense strategies: open communication, automation, tech integration, validation, and collaborative culture.
By Shana Dacres-Lawrence
Modern engineering needs a shift from "gates" to "guardrails." Scale via decentralized architecture that treats teams like adults—building judgment through Socratic coaching, shared platforms, and automated drift detection. Move beyond bottlenecks to an interdependent model where AI governance and ADRs preserve context without killing velocity. Empower autonomy while maintaining alignment.
By Shweta Aggarwal, Ron Klein
© 2026 Created by Michael Levin.
Powered by